SpeechSynthesizer en C # crée wav qui a 22kHz ... doit être 16kHz
-
26-09-2019 - |
Question
Mon C # besoins de l'application au texte caché dans le fichier wav et l'injecter dans un appel Skype. Le code qui crée le fichier wav est ci-dessous. Le problème est que le fichier a un taux d'échantillonnage de 22kHz et Skype accepte uniquement 16kHz.
Est-il possible de régler ce paramètre?
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();
}
La solution
SetOutputToWaveFile()
a un surcharge qui accepte un SpeechAudioFormatInfo
paramètre , qui peut être utilisé pour régler la fréquence d'échantillonnage. Vous ne trouvez pas un pour puisque vous écrivez à un dossier de toute façon, qui devrait fonctionner. SetOutputToWaveStream()
, curieusement, mais
Edit:
Comme @Hans souligne, la surcharge est correcte SetOutputToAudioStream()
d'écrire dans un cours d'eau.