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



我知道我可以通过以下方式使用Python将数据(在本例中为文本(发送到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,有人知道吗?

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

SSML(语音合成标记语言(是一种用于音频输出的标记语言,就像 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,并且它为用户提供了播放控制权。

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

相关内容

  • 没有找到相关文章

最新更新