linux下录音并使用google API变文本
来源:互联网 发布:淘宝手办怎么验货拒签 编辑:程序博客网 时间:2024/05/29 09:12
在这篇文章里主要解决两个问题,第一个是录音,第二个则是speech to text.
关于audio-recorder
目前我在linux里面录音有两个办法,第一个是用ALSA驱动,第二个则是linux平台的一些工具。
关于工具,我觉得audio-recorder不错,功能比较多
这是基本的界面,我们可以自己写配置控制。比如:
start at 08:20 pm指定什么时候开始录音
stop if silence | 300kb就是当没有声音或者录音文件大小超过300k就停止录音
start if sound 1s -24 当有声音来源持续一秒且超过24分贝,就开始录音
并且,你还可以设置声音的来源,是来自麦克风,还是来自电脑里面的音频文件
你也可以设置输出格式,wav还是mp3亦或是FLAC
是不是非常好用,美中不足的就是当你发声时,刚开始的1s可能无法录制
ALSA
去下面可以下载用ALSA写的代码,可以录制wav格式的音乐.http://blog.csdn.net/evilcode/article/details/7594328
这是编译的 makefile
objects = lrecord.o sndwav_common.o wav_parser.oedit : $(objects) gcc -o edit $(objects) -lasoundlrecord.o : lrecord.c wav_parser.h sndwav_common.h gcc -c lrecord.c -lasoundsndwav_common.o : sndwav_common.c sndwav_common.hgcc -c sndwav_common.c -lasoundwav_parser.o : wav_parser.c wav_parser.hgcc -c wav_parser.cclean : rm edit $(objects)
比如,我这里生成了edit可执行文件,./edit a.wav就开始录音,并且ctrl-c之后录音就存在a.wav中。
下面,我们有了录音文件,就要开始利用谷歌API了。这个API美中不足的有2点:本地调用速度会比较慢,并且有次数限制(50次/天)
你可以体验一下 谷歌语音识别
首先你要去申请成为谷歌开发者,拿到API key 。 我要成为开发者拿到key
拿到key了之后就可以使用了,要注意使用FLAC格式的,我猜是因为无损识别率比较高么??
curl -X POST \--data-binary @speech.flac \--user-agent 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.77 Safari/535.7' \--header 'Content-Type: audio/x-flac; rate=8000;' \'https://www.google.com/speech-api/v1/recognize?client=chromium&lang=zh-CN&maxresults=5&pfilter=0&key=***************************'data-binary就是你的音频文件地址,然后key要换成你自己申请来的key
这一步很容易因为你音频文件格式不对导致500Error,你可以使用sox工具进行转换
sox ./speech.mp3 -b 8 speech.flac trim 1 2
这个命令的意思是截取speech.mp3的1-2s,频率设为8HZ,转为speech.flac接下来,你应该就没有问题了,祝你成功~~
参考:
- http://www.cnblogs.com/jhzhu/p/3632186.html
- http://blog.csdn.net/evilcode/article/details/7594328
7 1
- linux下录音并使用google API变文本
- wave录音程序||linux下录音程序
- JSON之三:获取JSON文本并解释(以google的天气API为例)
- JSON之三:获取JSON文本并解释(以google的天气API为例)
- JSON之三:获取JSON文本并解释(以google的天气API为例)
- 使用WaveX API编写录音程序
- 使用AVFoundation来录音并播放
- flex下使用google api获取对应经纬度的地名
- 在linux下使用google talk
- ubuntu linux 下使用google eather
- Linux 下使用静态google protocl buffer
- Linux 下使用静态google protocl buffer
- ubuntu linux下使用google drive
- google protobuf 在Linux下使用
- 使用 Google AJAX API
- google Analytics API使用
- linux如何使用文本浏览器lynx并显示中文
- linux下录音、放音程序
- 黑盒测试之等价类划分法
- Error in invoking target 'install' of makefile
- 数据库–MySQL主从同步备份设置
- Matlab中size函数用法
- EM重建
- linux下录音并使用google API变文本
- Erlang 笔试题 2
- Matlab中fspecial函数的用法
- 第二部分 算法的基本控制结构与数据类型
- 携程编程大赛 (预赛第一场)1004旋转的二进制
- 第一个OC的类
- 【开发平台】VM10.0非全屏情况下去掉黑边
- C++学习日记之动态内存分配构建stack类
- java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver