Google Speech Api使用
in java / voip on google, speech recognize, 语言识别 - Hits()
语音识别里,Google 现在是个Big Gun了,但是它没有公开它的API,也没有发售,许多程序使用这个api也是hack性质的,使用这种服务可能出现的问题就如Google Weather最近的更改一样。我从没想到竟然有人想拿它作为产品级别的应用服务,不过我已经比较淡定了,就像我没想到有人天天喊做震惊世界的软件,却成天想用抠门的态度来获得一本万利的回报,又想牛儿长得好又想牛儿不吃草!
嘛,嘛,嘛~ 扯远了,打住,。
从各方搜集到的情报来看,此服务性能还不错,虽然支持wav格式,但似乎官方推荐flac格式,所以我们还得转换一下,在java这方面就不得不提到两个开源项目:
https://github.com/The-Shadow/java-speech-api 这个里面包含了使用Google Speech Api的代码,可以参照,它是用了另外的一个项目
http://sourceforge.net/projects/javaflacencoder/
来转换wav到flac.
知道这两个事情,余下的就好办了,
请求头示例
Content-Type:audio/x-flac;rate=8000
请求地址
https://www.google.com/speech-api/v1/recognize?xjerr=1&client=chromium&lang=en-US
向其post你的flac流,得到的将会是解析结果,类似:
{"status":0,"id":"46f00c9fe47a4dfe3c97ae4076df726u-1","hypotheses":[{"utterance":"gong xi fa cai","confidence":0.9049254}]}
测试效果比较满意,国内访问相应速度堪忧,经常连不上,使用代理那速度就非常不错了。
代码我就不贴了。
这篇文章讲得比较详细: http://blog.csdn.net/dlangu0393/article/details/7214728
引用:
多种音频格式的测试
收到朋友的邮件说使用flac实在是很不方便,问我有没有更好的解决方法,于是我尝试将其他编码格式应用于Google Speech API。以下为结果:
1、WAV格式
请求Header:Content-Type: audio/L16; rate=16000
返回结果:识别成功
2、MP3格式
请求Header:Content-Type: audio/mpeg; rate=16000
返回结果:无法识别的编码
请求Header:Content-Type: audio/mpeg3; rate=16000
返回结果:无法识别的编码
请求Header:Content-Type: audio/x-mpeg; rate=16000
返回结果:无法识别的编码
请求Header:Content-Type: audio/x-mpeg-3; rate=16000
返回结果:无法识别的编码
请求Header:Content-Type: audio/mp3; rate=16000
返回结果:无法识别的编码
3、PCM格式
请求Header:Content-Type: audio/x-ogg-pcm; rate=16000
返回结果:无法识别的编码
请求Header:Content-Type: audio/pcm; rate=16000
返回结果:无法识别的编码
4、SPEEX格式
请求Header:Content-Type: audio/x-speex-with-header-byte; rate=16000
返回结果:识别成功
请求Header:Content-Type: audio/speex; rate=16000
返回结果:识别成功
参见:
http://stackoverflow.com/questions/12721436/google-speech-api
http://mikepultz.com/2011/03/accessing-google-speech-api-chrome-11/
http://blog.csdn.net/dlangu0393/article/details/7214728