语音识别

来源:互联网 发布:java和c语言的区别 编辑:程序博客网 时间:2024/04/27 14:30

由于项目需要,需要研究一下语音识别。

目前得到的结论如下:

可供使用的语音识别有Google, 讯飞,OpenEars

经测试:Google语音识别可以识别出普通话,香港话,台湾话。 网上有一个例子, 是根据苹果的官方Demo, SpeakHear改的, 效果还是不错的,唯一不太好的是,它没有判断什么时候用户说完话了,而是需要用户来点击结束,才认为是结束。

可以参看这篇文章:http://blog.csdn.net/dlangu0393/article/details/7214728

Google同样提供了语音合成:今天用google在线翻译的时候,发现了语音功能。 可以让自己的文字发音,这是一个很不错的功能,如果用到自己应用中,会不会是一个特色呢。 google TTS服务接口:http://translate.google.com/translate_tts?tl=en&q=text 这个会返回英文“text”发音的mp3.如果想返回中文的发音如何办呢?大家注意接口中的参数,修改一下就行:http://translate.google.com/translate_tts?tl=zh&q=测试。 由此类推,如果是其它国家的发音如何办, 只需要修改tl=countryCode这个参数。

对于Google提供的语音合成, 我记得在学习iphone开发之初,我就找到一个Demo可以使用给一个串,然后自动读出这个串的, 并且很简单的几行代码就可以做到。 前两天找了一下, 找了半天也没有找到,不知道是什么情况。


讯飞, http://dev.voicecloud.cn/index.php?vt=1

可以到这个官网上看到, 对公司和个人免费,如果用户达到百万级后,会收取一定的费用,适合开发使用。

优点:可以自动截取用户的说话,当用户沉默一会儿,讯飞会认为用户已经说完了。

不太好的是:

1。 对语言支持不如Google, 可以分大陆话,香港话以及台湾话, 而讯飞这个貌似分不出来。

2。 讯飞和开发者的协议不太人情,可以理解为讯飞什么时候看到这个开发者火了,那么他随时有权力终结掉这个开发者的使用讯飞的应用。如果是大公司使用这个,个人觉得还是有一定的风险的

3。 使用起来不如Google的简单,

4。 在线的,而且是1028端口,很多用户在使用时,在wifi的情况下,通过公司的网络,由于公司的网络极可能会封掉1028这样的不常用端口,会导致用户没法使用。


OpenEars, http://www.politepix.com/openears/

试了一下他的Demo,发现只能识别限定的词,如up, left, right, turn, go.(感觉比较适用于游戏,就是那种控制方向的游戏,但又不能是那种反应很快的游戏,因为识别的速度跟不上)

优点:

1。免费

2。 不依赖网络运行。