Microsoft TTS SaveToWaveFileAsync功能不工作



我正在使用Xamarin Forms开发一个移动文本到语音的应用程序。快速开始工作到目前为止,合成我的文本,但保存结果到一个文件似乎不工作。这是来自合成:

的类的代码
var config = SpeechConfig.FromSubscription("6e4a67f034a545e0833179044dd6d172", "westeurope");
var synthesizer = new SpeechSynthesizer(config);
var result = await synthesizer.SpeakSsmlAsync(xmlFirstPart + voice + xmlSecondPart + synthesisText + xmlThirdPart).ConfigureAwait(false);
var stream = AudioDataStream.FromResult(result);

string file = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "SpeechSynthesis.wav");
await stream.SaveToWaveFileAsync(file);

它没有错误,但是一旦我从另一个类调用它,下面的代码:

ISimpleAudioPlayer player = CrossSimpleAudioPlayer.CreateSimpleAudioPlayer();
player.Load(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "SpeechSynthesis.wav"));

给出如下错误:

. io .FileNotFoundException:"/数据/user/0/com.companyname.mobileapp/文件/SpeechSynthesis.wav '

如果有人知道这个错误的可能原因,那将对我有很大帮助。谢谢你。

用法看起来很好,但您使用的路径似乎是错误的:Environment.GetFolderPath(Environment.SpecialFolder.Personal), "SpeechSynthesis.wav".

试着给"path/to/write/file.wav"举例,它应该工作。

或者,您可以使用下面的代码保存到。wav:

using var audioConfig = AudioConfig.FromWavFileOutput("path/to/write/file.wav");

最新更新