Текст в MP3 с помощью System.Speech.Synthesis.SpeechSynthesizer

Я пытаюсь получить преобразование текста в речь для сохранения в MP3. В настоящее время у меня есть System.Speech.Synthesis, хорошо говорящий с файлом WAV.

    With New System.Speech.Synthesis.SpeechSynthesizer
        '.SetOutputToWaveFile(pOutputPath)    This works fine 
        .SetOutputToWaveStream(<<Problem bit>>)
        .Speak(pTextToSpeak)
        .SetOutputToNull()
        .Dispose()
    End With

Теперь первая закомментированная строка создает файл WAV, что приятно. В настоящее время я пытаюсь заменить это выходным потоком MP3 и не добился большого успеха.

Я попробовал конвертер Yeti.MMedia, но он либо не работает, либо не работает. Должен признаться, я мало что знаю о кодировках, скоростях и т. д.

Итак, у меня есть вопрос: кто-нибудь знает хороший способ сказать что-то вроде следующего:

.SetOutputToWaveStream(New MP3WriteStream(pOutputPath))

и пусть SpeechSynthesizer записывает в WAV, который затем преобразуется в MP3 и попадает на жесткий диск.


person Robin Vessey    schedule 17.12.2009    source источник


Ответы (3)


Во-первых, заставьте классы Yeti предоставлять доступный для записи поток с соответствующим коэффициентом сжатия. Затем используйте SpeechSynthesizer.SetOutputToAudioStream. - сообщить движку TTS о качестве речи.

person Eric Brown    schedule 30.06.2010

Я не думаю, что есть другой способ, кроме как написать его с помощью Wav, а затем преобразовать с помощью LAME MP3 Encoder (и т. Д.).

person Priyank Bolia    schedule 17.12.2009
comment
Да, хорошо, я попробую, хотя я надеялся на более элегантное решение, поэтому пока оставлю его открытым. - person Robin Vessey; 21.12.2009

Просто поиграйтесь с Yeti, он работает, я использовал его в довольно большом веб-приложении, и он работает без проблем около 2 лет.

person Doobi    schedule 15.06.2010