Репресинтезайзер в C # создает WAV, которая имеет 22 кГц ... должен быть 16 кГц

StackOverflow https://stackoverflow.com/questions/2625611

Вопрос

Мое приложение C # необходимо скрыть текст для файла WAV и ввести его в вызов Skype. Код, который создает файл WAV, ниже. Проблема в том, что файл имеет размер образца 22 кГц и Skype принимает только 16 кГц.

Есть ли способ настроить эту настройку?

using (System.IO.FileStream stream = System.IO.File.Create("message.wav"))
{

System.Speech.Synthesis.SpeechSynthesizer speechEngine = new System.Speech.Synthesis.SpeechSynthesizer();

 speechEngine.SetOutputToWaveStream(stream);
 speechEngine.Speak(number);
 stream.Flush();
}
Это было полезно?

Решение

SetOutputToWaveFile() имеет перегрузку, которая принимает SpeechAudioFormatInfo Параметр, который можно использовать для установки частоты дискретизации. Не вижу одного для SetOutputToWaveStream(), странно, но Так как вы пишете в файл в любом случае, это должно работать.

Редактировать:

Как указывает @hans, правильная перегрузка SetOutputToAudioStream() писать в поток.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top