代码之家  ›  专栏  ›  技术社区  ›  Jeremy E

拼写单词辅导的良好的自由文本到语音API

  •  8
  • Jeremy E  · 技术社区  · 16 年前

    我正在为我的儿子写一个拼写单词应用程序,希望对好的API提出建议,当它说话时可以理解。我在.NET中编程,因此与之互操作的东西会很方便。事先谢谢。

    2 回复  |  直到 16 年前
        1
  •  10
  •   Cheeso    16 年前

    MS Speech 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, ...");
      }
    }
    

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

    对于一个有着足够多单词的小孩来说,你可能只需要记录下你自己说这些单词的声音。我用美国国家拼图来做这个,是为了发音国家的名字,而不是求助于合成器。

        2
  •  4
  •   Cheeso    16 年前

    不知道为什么我没想到这个 之前 -
    我正在做一个字典查找工具,想给它添加发音。我采取了不同的方法,而不是使用文本到语音转换,这会发出机器人的声音。m-w.com在.wav文件中捕获了大多数单词的人声。所以我用屏幕抓取韦氏网站上的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.
    

    这里是 some prototype source code that does it .

    这适用于.NET Framework 2.0,也适用于.NET CF 2.0。这只是一个例子。当有多个单词形式和多个发音时,选择正确的.wav文件有点幼稚。如果你要复数形式,你可能得不到。另外,您可能需要添加缓存和额外的异常处理来加强它。