Actualmente estoy trabajando en una aplicación que requiere la transmisión de voz codificada a un formato de audio específico.Pregunta SpeechSynthesizer.SetOutputToAudioStream problema de formato de audio
System.Speech.AudioFormat.SpeechAudioFormatInfo synthFormat =
new System.Speech.AudioFormat.SpeechAudioFormatInfo(System.Speech.AudioFormat.EncodingFormat.Pcm,
8000, 16, 1, 16000, 2, null);
Esto indica que el audio está en formato PCM, 8000 muestras por segundo, 16 bits por muestra, mono, 16000 bytes promedio por segundo, la alineación de bloques de 2.
Cuando intento para ejecutar la el siguiente código no hay nada escrito en mi instancia de MemoryStream; sin embargo, cuando cambio de 8000 muestras por segundo hasta 11025, los datos de audio se escriben con éxito.
SpeechSynthesizer synthesizer = new SpeechSynthesizer();
waveStream = new MemoryStream();
PromptBuilder pbuilder = new PromptBuilder();
PromptStyle pStyle = new PromptStyle();
pStyle.Emphasis = PromptEmphasis.None;
pStyle.Rate = PromptRate.Fast;
pStyle.Volume = PromptVolume.ExtraLoud;
pbuilder.StartStyle(pStyle);
pbuilder.StartParagraph();
pbuilder.StartVoice(VoiceGender.Male, VoiceAge.Teen, 2);
pbuilder.StartSentence();
pbuilder.AppendText("This is some text.");
pbuilder.EndSentence();
pbuilder.EndVoice();
pbuilder.EndParagraph();
pbuilder.EndStyle();
synthesizer.SetOutputToAudioStream(waveStream, synthFormat);
synthesizer.Speak(pbuilder);
synthesizer.SetOutputToNull();
No hay excepciones o errores registrados cuando se utiliza una frecuencia de muestreo de 8000 y no pude encontrar nada útil en la documentación relativa a SetOutputToAudioStream y por qué tiene éxito en 11025 muestras por segundo y no 8000. Tengo una solución alternativa que involucra un archivo wav que he generado y convertido a la frecuencia de muestreo correcta utilizando algunas herramientas de edición de sonido, pero me gustaría generar el audio desde dentro de la aplicación si puedo.
Un punto de particular interés fue que la SpeechRecognitionEngine acepta que el formato de audio y con éxito reconocido el discurso en mi archivo de onda sintetizada ...
actualización: Hace poco descubrió que este formato de audio tiene éxito para ciertas voces instaladas, pero falla para otros. Falla específicamente para LH Michael y LH Michelle, y la falla varía para ciertas configuraciones de voz definidas en el PromptBuilder.
Lo siento si te interrumpo, parece que eres experto en productos de audio, tengo [esta pregunta] (http://stackoverflow.com/q/33932390/2651073) que me ha confundido, ¿podrías ayudarme por favor? ¿ese? – Ahmad