#c# #xamarin #text-to-speech
#c# #xamarin #преобразование текста в речь
Вопрос:
var config = SpeechConfig.FromSubscription("", "westeurope");
var synthesizer = new SpeechSynthesizer(config);
var result = await synthesizer.SpeakSsmlAsync(xmlFirstPart voice xmlSecondPart synthesisText xmlThirdPart);
var stream = AudioDataStream.FromResult(result);
string file = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), fileName ".wav");
await stream.SaveToWaveFileAsync(file);
Здравствуйте, этот фрагмент кода работает с Microsoft.Когнитивные сервисы.Речевой NuGet в Visual Studio — он выводит запрошенную строку в аудио. Проблема в том, что после вывода звука программа зависает. Я предполагаю, что проблема заключается в третьей строке кода, поскольку функция await не завершается, хотя она выполнила свою работу. Кто-нибудь знает, как я могу решить эту проблему? Заранее благодарю вас.
Комментарии:
1. Возможно, ваш компьютер недостаточно мощный для его обработки. Возможно, ответьте на этот комментарий своим оборудованием, и я проведу расследование.
2. У меня около 30 гигабайт свободного места; Процессор — Intel Core i7-5930K Процессор 3,5 ГГц ОПЕРАТИВНАЯ память — 32 ГБ ОЗУ Графический процессор — 1080Ti Запускается ли программа на вашем компьютере?
3. Я не уверен. Попробуйте добавить минимально воспроизводимую версию, чтобы я мог ее протестировать. У меня есть следующее: Ryzen 7 3800XT, 2080 SUPER, 1 ТБ NVME SSD, 16 ГБ оперативной памяти 3200 МГц
4. Вы запускаете этот фрагмент кода из приложения с графическим интерфейсом (учитывая xamarin, вероятно, да) или командной строки? Используйте отладчик, чтобы проверить, действительно ли вы «зависаете» там, где вы думаете. Попробуйте добавить
.ConfigureAwait(false)
в своиawait
вызовы.5. Кристиан, добавление .ConfigureAwait(false) было решением моей проблемы. Большое вам спасибо, приветствия.