SpeechSynthesizer en C # crea wav que tiene 22kHz ... tiene que ser de 16 kHz
-
26-09-2019 - |
Pregunta
Mi C # necesidades de aplicación a texto encubierta al archivo wav y lo inyecta en una llamada de Skype. El código que crea el archivo de sonido está por debajo. El problema es que el archivo tiene la frecuencia de muestreo de 22 kHz y 16 kHz Skype sólo acepta.
¿Hay alguna manera de ajustar esta configuración?
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();
}
Solución
SetOutputToWaveFile()
tiene una sobrecarga que acepta una SpeechAudioFormatInfo
parámetro, que puede ser utilizado para establecer la frecuencia de muestreo. No encuentras uno para ya que usted está escribiendo en un archivo de todos modos, que debería funcionar. SetOutputToWaveStream()
, por extraño, pero
Editar:
Como @Hans señala, la sobrecarga correcta es SetOutputToAudioStream()
escribir en un arroyo.