Как реализовать преобразование текста в речь (TTS) в Visual C#/C++?

Я хочу написать простое приложение для Windows на языке Visual C#/C++, которое позволяет пользователям вводить различные сегменты текста, а затем нажимать набор горячих клавиш, чтобы в любое время слышать различные текстовые сегменты в TTS. Программа должна принимать горячие клавиши во время работы в фоновом режиме или даже когда полноэкранные приложения имеют фокус.

Пример использования: пользователь вводит «hello world» и сохраняет его как первый текстовый сегмент, а затем вводит «переполнение стека» и сохраняет его как второй текстовый сегмент. Пользователь может переключиться на другую программу, а затем нажать горячую клавишу CTRL-1, чтобы услышать, как TTS скажет «привет, мир», или CTRL-2, чтобы услышать, как TTS скажет «переполнение стека». Программа, конечно, должна иметь возможность работать полностью в автономном режиме (на всякий случай, если это повлияет на какие-либо предложения)

В качестве примечания: я довольно новичок в программировании на Visual, но у меня достаточно приличный опыт работы с C#/C+, поэтому, хотя я в основном ищу помощь в части TTS, я открыт для предложений любого рода. если кто-то делал подобные вещи раньше.


person birdyedwards    schedule 23.07.2010    source источник


Ответы (3)


если вы хотите что-то обсудить на C#, используйте Introp.SpeechLib.dll

E.g:

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;
            }
        }

прочитайте это: Речевые технологии

person anishMarokey    schedule 23.07.2010
comment
Спасибо! Interop.SpeechLib оказался отличным решением, учитывая простоту его использования. - person birdyedwards; 24.07.2010

Ссылка System.Speech.dll. Вы можете создать экземпляр System.Speech.Synthesis.Synthesizer и вызвать .Speak("TEXT HERE");

person Mark H    schedule 23.07.2010

Вы должны использовать Microsoft Speech SDK.

Подробности смотрите по этой ссылке:

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

person Russ Clarke    schedule 23.07.2010