有没有办法仅使用 dialogflow-CX 在电话通话中播放音频?

Is there any way to play audio in the phonecall with dialogflow-CX only?

提问人:Extraordinary 提问时间:11/11/2023 更新时间:11/16/2023 访问量:95

问:

所以我正在尝试流式传输这个音频 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,我只想播放这个预先录制的音频文件。

python dialogflow-cx

评论

0赞 Arpita Shrivastava 11/13/2023
嗨,非凡,这 2 个 Link1Link2 会对您有所帮助吗?
0赞 Extraordinary 11/14/2023
@ArpitaShrivastava很遗憾没有

答:

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
是的,我确实试过了,它不会播放音频