Контекст: мы создаем бота, использующего Azure Communication Services (ACS) и Azure Speech Services для обработки телефонных звонков. Бот задает вопросы (через TTS) и записывает ответы пользователей с помощью преобразования речи в текст (STT). Проблемы:< /p>
Ответы пользователей не фиксируются. Несмотря на то, что для InitialSilenceTimeout установлено значение 10 секунд, бот переходит к следующему вопросу через 1–2 секунды, не распознавая речь.
бот не выдает повторный запрос пользователю, даже если ответ не получен.
Требуется помощь:
Как Можем ли мы обеспечить точный захват речи в текст в режиме реального времени во время телефонных звонков ACS?
Существуют ли лучшие конфигурации или альтернативные подходы для распознавания речи в ACS?
// Recognize user speech
async Task RecognizeSpeechAsync(CallMedia callConnectionMedia, string callerId, ILogger logger)
{
// Configure recognition options
var recognizeOptions = new CallMediaRecognizeSpeechOptions(
targetParticipant: CommunicationIdentifier.FromRawId(callerId))
{
InitialSilenceTimeout = TimeSpan.FromSeconds(10), // Wait up to 10 seconds for the user to start speaking
EndSilenceTimeout = TimeSpan.FromSeconds(5), // Wait up to 5 seconds of silence before considering the response complete
OperationContext = "SpeechRecognition"
};
try
{
// Start speech recognition
var result = await callConnectionMedia.StartRecognizingAsync(recognizeOptions);
// Handle recognition success
if (result is Response)
{
logger.LogInformation($"Result: {result}");
logger.LogInformation("Recognition started successfully.");
// Simulate capturing response (replace with actual recognition logic)
return "User response captured"; // Replace with actual response text from recognition
}
logger.LogWarning("Recognition failed or timed out.");
return string.Empty; // Return empty if recognition fails
}
catch (Exception ex)
{
logger.LogError($"Error during speech recognition: {ex.Message}");
return string.Empty;
}
}
Что мы сделали:
Создали экземпляр ACS и приобрел активный номер телефона.
Настройте подписку на события для обработки обратных вызовов для входящих вызовов.
Интегрированные службы речи Azure для STT на C#.
Достижения:
[*]
Успешно подключены вызовы с помощью ACS.
[*]Воспроизведены подсказки TTS, созданные из файла Excel.
[b]Контекст:[/b] мы создаем бота, использующего [b]Azure Communication Services (ACS)[/b] и [b]Azure Speech Services[/b] для обработки телефонных звонков. Бот задает вопросы (через TTS) и записывает ответы пользователей с помощью [b]преобразования речи в текст (STT)[/b]. [b]Проблемы:[/b]< /p> [list] [*]Ответы пользователей не фиксируются. Несмотря на то, что для InitialSilenceTimeout установлено значение 10 секунд, бот переходит к следующему вопросу через 1–2 секунды, не распознавая речь.
[*] бот не выдает повторный запрос пользователю, даже если ответ не получен.
[/list] [b]Требуется помощь:[/b] [list] [*]Как Можем ли мы обеспечить точный захват речи в текст в режиме реального времени во время телефонных звонков ACS?
[*]Существуют ли лучшие конфигурации или альтернативные подходы для распознавания речи в ACS?
[*]Использование служб речи Azure и пакетов SDK ACS.
[/list] [b]Фрагмент кода:[/b] [code]// Recognize user speech async Task RecognizeSpeechAsync(CallMedia callConnectionMedia, string callerId, ILogger logger) { // Configure recognition options var recognizeOptions = new CallMediaRecognizeSpeechOptions( targetParticipant: CommunicationIdentifier.FromRawId(callerId)) { InitialSilenceTimeout = TimeSpan.FromSeconds(10), // Wait up to 10 seconds for the user to start speaking EndSilenceTimeout = TimeSpan.FromSeconds(5), // Wait up to 5 seconds of silence before considering the response complete OperationContext = "SpeechRecognition" };
try { // Start speech recognition var result = await callConnectionMedia.StartRecognizingAsync(recognizeOptions);
// Handle recognition success if (result is Response) { logger.LogInformation($"Result: {result}"); logger.LogInformation("Recognition started successfully."); // Simulate capturing response (replace with actual recognition logic) return "User response captured"; // Replace with actual response text from recognition }
logger.LogWarning("Recognition failed or timed out."); return string.Empty; // Return empty if recognition fails } catch (Exception ex) { logger.LogError($"Error during speech recognition: {ex.Message}"); return string.Empty; } } [/code] [b]Что мы сделали:[/b] [list] [*]Создали экземпляр ACS и приобрел активный номер телефона.
[*]Настройте подписку на события для обработки обратных вызовов для входящих вызовов.
Интегрированные службы речи Azure для STT на C#.
[/list] [b]Достижения:[/b]
[*] Успешно подключены вызовы с помощью ACS.
[*]Воспроизведены подсказки TTS, созданные из файла Excel.