【问题标题】:How to implement text-to-speech (TTS) in Visual C#/C++?如何在 Visual C#/C++ 中实现文本转语音 (TTS)?
【发布时间】:2011-03-19 23:10:53
【问题描述】:

我想用 Visual C#/C++ 编写一个简单的 Windows 应用程序,让用户输入不同的文本段,然后按一组热键随时听到 TTS 中的各种文本段。程序在后台运行时或什至在全屏应用程序有焦点时应该接受热键。

示例用例:用户输入“hello world”并将其保存为第一个文本段,然后输入“堆栈溢出”并将其保存为第二个文本段。用户可以切换到另一个程序,然后按热键 CTRL-1 听到 TTS 说“hello world”或 CTRL-2 听到 TTS 说“堆栈溢出”。该程序当然应该能够完全离线运行(以防影响任何建议)

作为旁注,我对 Visual 编程还是很陌生,但在 C#/C+ 方面有足够的背景,所以即使我主要是在 TTS 部分寻求帮助,我也愿意接受建议任何类型的,如果有人以前做过这种事情。

【问题讨论】:

    标签: c# visual-c++ text-to-speech


    【解决方案1】:

    参考System.Speech.dll。您可以实例化一个System.Speech.Synthesis.Synthesizer 并调用.Speak("TEXT HERE");

    【讨论】:

      【解决方案2】:

      您必须使用 Microsoft Speech SDK。

      查看此链接了解详情:

      http://dhavalshah.wordpress.com/2008/09/16/text-to-speech-in-c/

      【讨论】:

        【解决方案3】:

        如果您想谈论 C# 方面的内容,请使用 Introp.SpeechLib.dll

        例如:

        private void ReadText()
                {
                    int iCounter = 0;
                    while (Convert.ToInt32(numericUpDown1.Value) > iCounter)
                    {
                        SpVoice spVoice = new SpVoice();
                        spVoice.Speak("Hello World", SpeechVoiceSpeakFlags.SVSFPurgeBeforeSpeak);
                        spVoice.WaitUntilDone(Timeout.Infinite);
                        iCounter = iCounter + 1;
                    }
                }
        

        阅读:Speech Technologies

        【讨论】:

        • 谢谢!事实证明,Interop.SpeechLib 是一个非常棒的解决方案,因为它的使用非常简单。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-10
        • 2011-03-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多