【问题标题】:Send audio file to DialogFlow using Python使用 Python 将音频文件发送到 DialogFlow
【发布时间】:2018-05-24 16:41:40
【问题描述】:

我知道我可以通过以下方式使用 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,有人知道吗?

【问题讨论】:

    标签: python dialogflow-es api-ai


    【解决方案1】:

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

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

    {
        "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>",
        ...
    }
    

    请注意,&lt;speak&gt; 标记必须始终围绕整个响应,以便 Google 现在必须使用 SSML 呈现文本(就像网站上的 &lt;html&gt; 标记一样)。 &lt;audio&gt; 标签可以有几个可选属性,详情请看文档。

    SSML 的优点是对开发者来说非常易于使用,但音频文件的长度限制为 120 秒,文件大小为 5MB,并且它不给用户播放控制权。

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

    【讨论】:

    • 我理解你写的内容,这是一个有趣的贡献,但我的问题更相关:我可以使用 Python 将音频文件发送到 Dialogflow(标准版)吗?
    • 不,您不能将音频文件直接发送到 Dialogflow。如果您想在回复中包含预先录制的音频,则必须通过上述方式之一进行。
    猜你喜欢
    • 1970-01-01
    • 2019-10-28
    • 1970-01-01
    • 1970-01-01
    • 2017-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多