我正在尝试使用 Microsoft Azure 通信服务创建一个简单的 IVR。我创建了一个函数来接听来电,以及一个函数来处理通话期间的事件,例如播放音频、获取用户输入等。
接听电话时,将播放音频文件。我的这部分功能运行良好。下一部分是用户/呼叫者将听到另一个音频文件,并被要求回答问题。我使用了呼叫自动化包和语音识别,但在获取用户输入时出现以下错误:
“处理事件时出错:TypeError:无法读取未定义的属性(读取'kind')”。
功能如下:
if (eventType === 'Microsoft.Communication.CallConnected') {
const callConnectionId = eventData.callConnectionId;
// Play an audio
const playSource = { url: "...", kind: "fileSource" };
await callAutomationClient.getCallConnection(callConnectionId).getCallMedia().playToAll([playSource]);
// another audio source
const playSource = { url: "..." kind: "fileSource" };
const recognizeOptions = {
playPrompt: playSource,
initialSilenceTimeoutInSeconds: 10,
interruptPrompt: true,
operationContext: "OpenQuestionSpeech",
kind: "callMediaRecognizeSpeechOptions"
};
await callAutomationClient.getCallConnection(callConnectionId).getCallMedia().startRecognizing(recognizeOptions);
在 recognizeOptions 打字稿的最后一行中,kind 似乎有问题:“callMediaRecognizeSpeechOptions”。我按照使用识别操作收集用户输入和CallMediaRecognizeSpeechOptions界面中的说明进行操作,但仍然遇到此错误。
我将不胜感激任何帮助和建议。
首先,该行中缺少一个逗号运算符:
const playSource = { url: "..." kind: "fileSource" };
另查看文档,似乎
startRecognizing
函数接受两个参数 targetParticipant
和 recognizeOptions
,但您传递 recognizeOptions 代替 targetParticipant。尝试解决这个问题。