我正在使用 AWS 开发工具包将 AWSLexVoiceButton 添加到我的应用程序中。我已在我设置的 Intent 中将其配置为客户端实现,因为我想让应用程序根据我的 Intent 的 AWS 控制台中的语音命令在屏幕上显示一些内容:
这一切都有效,当机器人识别我的意图时,我在下面的代码中得到一个回调:
func voiceButton(_ button: AWSLexVoiceButton, on response: AWSLexVoiceButtonResponse) {
// `inputranscript` is the transcript of the voice input to the operation
if response.dialogState == .readyForFulfillment {
print("Ready to fulfill")
// I want to provide speech output
say(text: "OK, I will show the train status screen")
showTrainStatusScreen()
}
}
两个问题:
当我点击 AWSLexVoiceButton 时,没有任何音频指示它正在收听,并且您甚至看不到您点击按钮的任何迹象,除非您发出足够大的声音以使其麦克风声音检测动画。我无法添加诸如“有什么可以帮助您的?”之类的语音提示。因为最初点击按钮时没有
AWSLexVoiceButtonDelegate
回调。Q:有没有什么办法可以在 Lex 众生听的时候添加语音提示?
同样,没有音频指示客户端正在实现意图。因为有回调,所以我可以添加自己的响应。但为此,我手动设置了一个
AVAudioPlayer
AWS Polly 并与它集成,以say
我编写的自定义方法将我的文本转换为语音。我的方法有效,但似乎它一定是错误的方法。问:是否有任何方法可以触发 Lex 作为客户端执行的结果来提供自定义音频响应?