微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Microsoft TTS SaveToWaveFileAsync 功能不起作用

如何解决Microsoft TTS SaveToWaveFileAsync 功能不起作用

我正在使用 Xamarin Forms 开发移动文本转语音应用程序。 Quickstart 到目前为止工作并合成了我的文本,但将结​​果保存到文件似乎不起作用。这是综合类的代码

        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"));

它给出了以下错误

Java.IO.FileNotFoundException: '/data/user/0/com.companyname.mobileapp/files/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");

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。