0
我試圖創建帶文本到語音通知的Toast通知作爲音頻通知。當用戶輸入「Let's eat」這樣的描述並保存吐司時,當時間到了時,吐司會說「Let's eat」。它就像一個烤麪包的鈴聲。無法從UWP上的文本到語音音頻創建URI文件
我從Social MSDN得到了答案如何從文本到語音創建敬酒通知,但是在我的程序中它總是轉向異常。
這是一個用於創建文本到語音Toast通知代碼:
private static async Task<Uri> AudioforToast(string text)
{
var voices = SpeechSynthesizer.AllVoices;
using (var synthesizer = new SpeechSynthesizer())
{
if (!String.IsNullOrEmpty(text))
{
try
{
synthesizer.Voice = voices.First(gender => gender.Gender == VoiceGender.Female);
// Create a stream from the text.
SpeechSynthesisStream synthesisStream = await synthesizer.SynthesizeTextToStreamAsync(text);
// And now write that to a file
var file = await ApplicationData.Current.TemporaryFolder.CreateFileAsync("ToastAudio", CreationCollisionOption.ReplaceExisting);
using (var fileStream = await file.OpenStreamForReadAsync())
{
await synthesisStream.AsStream().CopyToAsync(fileStream);
}
// And then return the file path
return new Uri("ms-appdata:///temp/ToastAudio");
}
catch (Exception)
{
// If the text is unable to be synthesized, throw an error message to the user.
var messageDialog = new Windows.UI.Popups.MessageDialog("Unable to synthesize text. Toast Audio is default");
await messageDialog.ShowAsync();
}
}
}
// If the text is unable to be synthesized, don't return a custom sound
return null;
}
當我試圖調試它,代碼無法保存文本到語音轉換結果存入檔案。
此音頻稍後將用作烤麪包的自定義音頻。
感謝您的回答。在更改爲OpenStreamForWriteAsync()之後,它將嘗試部分,但文本到語音仍然不出來。 –
@OliviaOlgaClarissa我已經與相關團隊聯繫過。目前,它不支持臨時文件夾。您可以將音頻文件複製到本地文件夾。我們將考慮在未來版本的Windows中添加對臨時文件夾的支持。 –
好的,謝謝你的信息,澤維爾 –