判断SSML音频是否合成成功
1.创建SpeechConfig对象
var config = SpeechConfig.FromSubscription("e1f258de8e244544aa908e2c994b7911", "westus");
2.实例化SpeechSynthesizer
using var synthesizer = new SpeechSynthesizer(config, null);
3.定义ssml内容
var ssmlContent = $"<speak version=\"1.0\" xmlns=\"http://www.w3.org/2001/10/synthesis\"
xml:lang =\"{languageCode}\"><voice name=\"{voiceName}\"><prosody rate=\"1\">
{voiceTestSample.Sample}</prosody></voice></speak>";
4.合成.wav音频
var ssmlSpeakResult = await synthesizer.SpeakSsmlAsync(ssmlContent);
5.检查合成结果
if(ssmlSpeakResult.Reason == ResultReason.SynthesizingAudioCompleted){}
思路:
1.看SpeakSsmlAsync返回结果:Task<SpeechSynthesisResult>
2.再看SpeechSynthesisResult是什么类型
可知SpeechSynthesisResult是一个对象
展开Reason发现他是一个枚举类型
里面有音频的各种状态信息,9为合成音频成功
通过if语句判断一下:
if (ssmlSpeakResult.Reason == ResultReason.SynthesizingAudioCompleted){
Console.WriteLine("")
}