8

我正在为我的儿子编写一个拼写单词应用程序,并希望推荐一些好的 API 可以在它说话时被理解。我正在.Net 中编程,所以可以与之互操作的东西会很方便。提前致谢。

4

2 回答 2

10

微软语音 SDK。它通过 .NET 程序集公开。非常容易使用。我的孩子们喜欢它。自由。

using System.Speech.Synthesis;

public class SpeakHelloWorld
{
  public static void Main(string[] args)
  {
      SpeechSynthesizer synthesizer = new SpeechSynthesizer();
      synthesizer.Speak("As for me and my house, ...");
  }
}

上面代码生成的声音不使用自然变形,有停顿等等。所以用一个完整的句子,它听起来不像人类。但是单个单词听起来不错,只是有点机器人。

对于一个小孩子来说,只要有足够少的单词集,您可能只想录制自己说这些单词的声音。我用一个美国州拼图来做到这一点,发音州名,而不是求助于合成器。

于 2009-06-10T12:52:21.277 回答
5

不知道为什么我之前没有想到这个-
正在做一个字典查找工具,并想为其添加发音。我没有使用提供机器人声音的文本到语音,而是采用了不同的方法。MW.com 在 .wav 文件中捕获了大多数单词的人声。因此,我在 Merriam-Webster 网站上进行屏幕抓取,以获取单词的 wav 文件,然后播放. 如果您的应用程序将被连接,那么也许这也适用于您。

这是它经历的流程:

pronouncing Tricky...looking up 'Tricky'...
dictionary page: http://www.merriam-webster.com/dictionary/Tricky
got dictionary page markup, 35828 chars...
getting pronunciation uri...
got uri: 'http://www.merriam-webster.com//cgi-bin/audio.pl?tricky01.wav=tricky'...
getting page markup...
got pronunciation page markup, 3498 chars...
getting wav uri...
got wav uri: 'http://media.merriam-webster.com/soundc11/t/tricky01.wav'...
getting wav data...
got wav data, 6260 bytes...
playing wav data.
done.

这是一些原型源代码

这适用于 .NET Framework 2.0,也适用于 .NET CF 2.0。这只是一个插图。当有多种单词形式和多种发音时,选择正确的 .wav 文件有点天真。如果您要求复数形式,您可能不会得到它。此外,您可能希望添加缓存和额外的异常处理来加强它。

于 2009-06-10T19:09:48.020 回答