提问人:Extraordinary 提问时间:11/11/2023 更新时间:11/16/2023 访问量:95
有没有办法仅使用 dialogflow-CX 在电话通话中播放音频?
Is there any way to play audio in the phonecall with dialogflow-CX only?
问:
所以我正在尝试流式传输这个音频 URL,我尝试了多种方式,但我无法通过电话播放 ti。
@app.route('/webhook', methods=['POST'])
def handle():
req = request.get_json(force=True)
print(f"Request data: {req}") # Print the request data
user_text = req.get('transcript')
tag = req["fulfillmentInfo"]["tag"]
print(f"User text: {user_text}, Tag: {tag}") # Print the user text and action
response = "" # Initialize response
if tag == 'dialogflowRES':
if user_text is not None:
response = "Hello this is an example"
else:
response = ""
print(f"Response: {response}") # Print the response
if "Bye" in response:
return jsonify({
'fulfillment_response': {
'messages': [{
'text': {
'text': [response]
}
}]
},
'end_interaction': True
})
else:
# Replace 'audio_public_url' with the public URL of your audio file
audio_public_url = 'https://storage.googleapis.com/twiliobucket/output.wav'
return jsonify({
'fulfillment_response': {
'messages': [{
'payload': {
'telephonySynthesizeSpeech': {
'text': response,
'ssml': f'<speak><audio src="{audio_public_url}"/></speak>'
}
}
}]
}
}
我也尝试了不同的语法,但仍然不起作用。
return jsonify({
'fulfillment_response': {
'messages': [{
'payload': {
'audio': {
'uri': audio_public_url,
'config': {
'audioEncoding': 'AUDIO_ENCODING_LINEAR_16',
'sampleRateHertz': 8000
}
}
}
}]
}
})
在这种情况下,我使用的是 Flask,我只想播放这个预先录制的音频文件。
答:
0赞
gawi
11/16/2023
#1
根据文档,您应该使用以下属性:playAudio
{
"fulfillment_response": {
"messages": [{"payload": {"playAudio": {"audioUri": audio_public_url}}}]
}
}
评论
0赞
Extraordinary
11/17/2023
感谢您的回复,看到问题是它仍然是一条消息,但它嵌入了音频。我正在寻找一种通过对话流的一键式电话集成在电话上播放声音的方法。
0赞
gawi
11/17/2023
我不确定你说的“它仍然是一个消息”是什么意思。我希望电话集成能够获取 URI 并播放音频文件。你试过吗?
0赞
Extraordinary
11/17/2023
是的,我确实试过了,它不会播放音频
评论