文本转语音(声音生成)和语音转文本(语音识别)API?

15

是否有一个全面的已知桌面或浏览器环境API列表?


这是一个非常广泛的问题。您是否对API或实现感兴趣?您是否有任何语言或平台选择可以限制此内容? - Michael Levy
我知道好的解决方案确实很少,所以我决定根据可用的优质语音转文字和文字转语音来选择平台(在广义上)和编程语言。 - Vladimir Keleshev
3个回答

31

我将重新阐述和更新在C、Java或PHP中进行语音识别?的答案。这并不全面,但可能是你的一个起点。


从观察这些问题几个月来,我发现大多数开发者的选择如下:

Windows用户-使用.Net或Microsoft.Speech的System.Speech功能并安装Microsoft提供的免费识别器。Windows 7包含完整的语音引擎,其他可免费下载。有一个C++ API到同样的引擎称为SAPI。请参见http://msdn.microsoft.com/en-us/magazine/cc163663.aspxhttp://msdn.microsoft.com/en-us/library/ms723627(v=vs.85).aspx。有关Windows的Microsoft引擎的更多背景信息,请参见What is the difference between System.Speech.Recognition and Microsoft.Speech.Recognition?

Linux用户-Sphinx似乎有很好的追随者。请参见http://cmusphinx.sourceforge.net/http://cmusphinx.sourceforge.net/wiki/

商业产品 - Nuance, Loquendo, AT&T, IBM等。它们都提供各种语言的SDK和库。

在线服务 - Nuance, Yapme, ispeech.org, vlingo等。Nuance已经改善了他们的开发者计划,现在将为您提供免费访问其服务以进行开发。我相信Yap最近被亚马逊收购了,所以我们可能会看到一些变化。

当然,这也可能有所帮助 - http://en.wikipedia.org/wiki/List_of_speech_recognition_software

有一个Java语音API。请参阅Java Speech API中的javax.speech.recognition http://java.sun.com/products/java-media/speech/forDevelopers/jsapi-guide/Recognition.html。我相信您仍然需要找到支持此API的语音引擎。我不认为Sphinx完全支持它-http://cmusphinx.sourceforge.net/sphinx4/doc/Sphinx4-faq.html#support_jsapi

还有很多其他的SO问题:需要Linux的文本到语音和语音识别工具以及pyspeech(python)-转录mp3文件?,其中提到http://code.google.com/p/pyspeech/。您也可以查看http://code.google.com/p/dragonfly/


1
你错过的另一个非官方在线服务是谷歌的语音 API。这里有一些 Java API 钩子的链接:https://github.com/The-Shadow/java-speech-api - Skylion
2
我不相信谷歌曾经公开提供他们的语音API。人们已经进行了反向工程并使用它,但我不认为谷歌支持第三方使用。我相信它只是用于Chrome浏览器或Android操作系统。请参见https://dev59.com/32cs5IYBdhLWcg3wmlEK#12727910或https://dev59.com/qlzUa4cB1Zd3GeqP4IlP#7889565。 - Michael Levy
1
Google的API在Chrome上是免费可访问的。我的Web应用程序实现如下:https://speechlogger.appspot.com - Ronen Rabinovici

2

文本转语音(语音生成)的主要API供应商是YAKiToMe!和iSpeech。我使用YAKiToMe!,因为我最喜欢他们的声音质量,并且他们是最便宜的(大多数是免费的)。他们支持多种语言中的男性和女性发音人。一些语音供应商,如Acapella、Nuance、Loquendo和iVona,有不错的声音,但往往使用起来比较昂贵。


1
这是如何做到的: 注意:这是谷歌的API,因此仅适用于Chrome浏览器。
(在此处查看实时演示并下载完整源代码http://purpledesign.in/blog/?p=33
定义一个按钮。
<input id="speech" type="text" speech="speech" x-webkit-speech="x-webkit-speech" onspeechchange="processspeech();" onwebkitspeechchange="processspeech();" />

在你的JavaScript文件中定义一个函数,并确定你想要做什么。

就像这样:

   function processspeech()
   {
     var speechtext=$("#speech").val();
     var elem = document.getElementById("test");
     elem.value = speechtext;
     var notification="\"<span style=\"color:#F00; text-transform:uppercase;\">"+  speechtext + "</span>\" <br />*Is this what you said???";
    notify(notification);
}

这里。
<textarea> id="test"></textarea>

这段话是在文本区域中编写的


1
该链接指向一个空的托管页面。 - Ronen Rabinovici

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接