使用Python将音频文件发送到DialogFlow

时间:2018-05-24 16:41:41

标签: python dialogflow api-ai

我知道我可以通过以下方式使用Python将数据(在本例中为Text)发送到DialogFlow:

ai = apiai.ApiAI(CLIENT_ACCESS_TOKEN)
request = ai.text_request()
request.lang = 'de'  # optional, default value equal 'en'
request.session_id = "<SESSION ID, UNIQUE FOR EACH USER>"
request.query = "Hello"
response = request.getresponse()
print (response.read())

但我不确定我是否可以向DialogFlow发送音频文件,有人知道吗?

1 个答案:

答案 0 :(得分:0)

在Google Action / Dialogflow响应中使用音频文件有两种方法:带有<audio>标记的SSML和媒体响应。两者都希望音频文件通过HTTPS URL提供,文件本身通常存储在云存储服务中,如Google云端存储或Amazon S3。

SSML (Speech Synthesis Markup Language)是音频输出的标记语言,就像HTML用于视觉输出一样。它受Google操作支持,可用作普通文本响应的替代品,而不是像这样包含响应文本:

{
    "speech": "This is the text that the users hears",
    ...
}

你会用SSML标记它:

{
    "speech": "<speak><audio src="https://some_cloud_storage.com/my_audio_file.ogg"></audio></speak>",
    ...
}

请注意,<speak>代码必须始终包含整个回复,以便Google指出必须使用SSML呈现文本(就像网站上的<html>代码一样)。 <audio>标记可以包含多个可选属性,有关详细信息,请参阅文档。

作为开发人员,SSML具有非常易于使用的优点,但音频文件的长度限制为120秒,文件大小为5MB,并且用户无法进行播放控制。

Media responses没有这些限制,并显示为带有图片和播放控件的卡片,但它们目前仅适用于Google Home和Android设备。