簡體   English   中英

亞馬遜Alexa - 捕獲完整的成績單

[英]Amazon Alexa - capture full transcript

我正在使用AWS Lambda和NodeJS構建Alexa技能。 我有兩個問題:

1)我可以檢索說話者的完整成績單嗎?

在我的Alexa手機應用程序中,我能夠准確地閱讀我所說的內容,但我想收集這些數據,以便我可以分析人們如何與我的技能交流。

這可以通過語音到文本工具實現,例如Google Speech API( 此處演示,此處為 spec ),以及recognition.onresult()

recognition.onresult = function(event) {
    var interim_transcript = '';

    for (var i = event.resultIndex; i < event.results.length; ++i) {
      if (event.results[i].isFinal) {
        final_transcript += event.results[i][0].transcript;

在我的Alexa應用程序中,當我問“唱生日快樂”時,你可以在這里看到它:

在此輸入圖像描述

我怎么能以編程方式捕獲這個? 我想知道用戶何時詢問我沒有想到的事情,收集這些失敗和常見的語音請求,並根據它提高技能。


2)Alexa是否支持多種語音和多種語言(輸入和輸出)?

再一次,查看Google Speech API,您可以看到它允許對語音輸入和語音輸出進行許多修改,使用多語言,甚至是語速:

    var utterance = new SpeechSynthesisUtterance();
    utterance.rate = 0.7;
    utterance.lang = "zh-CN";

Alexa是否提供這套控件?

問題1:

不是現在。 根據請求語法 ,音頻剪輯不會提供給服務的端點。 或者,如果您提供硬件並利用Alexa語音服務,那么您將捕獲音頻。

問題2:

不是現在。 Alexa似乎只支持英語

捕獲多個句子

使用我的同事Bryan Colligan創建的這個hack。

這個怎么運作

黑客使用插槽類型CONTENT_LIST"value": "all"來捕獲任何單詞。 通過創建包含多個捕獲所有插槽的樣本話語,例如"{WordI} {WordII} {WordIII} {WordIV} {WordV} {WordVI} {WordVII} {WordVIII} {WordIX}"您可以捕獲不同長度的句子緩解。

注意:根據我的經驗,亞馬遜的“搜索查詢”僅限於5-6個單詞。

警告:亞馬遜的轉錄非常糟糕,所以如果你捕獲的內容有點難以理解,也不要感到驚訝。 這個缺點可能是亞馬遜沒有透露其成績單的原因之一。 Google在Voice to Text方面遙遙領先。 我相信亞馬遜將來會在他們對自己的技術感到滿意時發布成績單。

代碼

以下代碼將連接多個插槽。 它可以放在你的lambda函數中。

let querySentance = '';
let wordSlots = ["WordI", "WordII", "WordIII", "WordIV", "WordV", "WordVI", "WordVII", "WordVIII", "WordIX", "WordX", "WordXI", "WordXII", "WordXIII", "WordXIV", "WordXV", "WordXVI", "WordXVII", "WordXVIII", "WordIXX", "WordXX", "WordXXI", "WordXXII", "WordXXIII", "WordXXIV", "WordXXV", "WordXXVI", "WordXXVII", "WordXXVIII", "WordIXXX", "WordXXX",];
wordSlots.forEach((word)=>{
    let slot = this.event.request.intent.slots[word];
    if (slot !== undefined && slot.value !== '' && slot.value !== '?' && slot.value !== null && slot.value !== undefined){
        querySentance = querySentance+' '+slot.value;
    }
});

以下交互模型使用CONTENT_LIST"value": "all"來捕獲任何單詞。

{
    "interactionModel": {
        "languageModel": {
            "invocationName": "alpha voice",
            "intents": [
                {
                    "name": "AMAZON.CancelIntent",
                    "samples": [
                        "cancel"
                    ]
                },
                {
                    "name": "AMAZON.HelpIntent",
                    "samples": [
                        "help"
                    ]
                },
                {
                    "name": "AMAZON.StopIntent",
                    "samples": [
                        "stop"
                    ]
                },
                {
                    "name": "OzIntent",
                    "slots": [
                        {
                            "name": "Query",
                            "type": "AMAZONSearchQuery"
                        },
                        {
                            "name": "WordI",
                            "type": "CONTENT_LIST"
                        },
                        {
                            "name": "WordII",
                            "type": "CONTENT_LIST"
                        },
                        {
                            "name": "WordIII",
                            "type": "CONTENT_LIST"
                        },
                        {
                            "name": "WordIV",
                            "type": "CONTENT_LIST"
                        },
                        {
                            "name": "WordV",
                            "type": "CONTENT_LIST"
                        },
                        {
                            "name": "WordVI",
                            "type": "CONTENT_LIST"
                        },
                        {
                            "name": "WordVII",
                            "type": "CONTENT_LIST"
                        },
                        {
                            "name": "WordVIII",
                            "type": "CONTENT_LIST"
                        },
                        {
                            "name": "WordIX",
                            "type": "CONTENT_LIST"
                        },
                        {
                            "name": "WordX",
                            "type": "CONTENT_LIST"
                        },
                        {
                            "name": "WordXI",
                            "type": "CONTENT_LIST"
                        },
                        {
                            "name": "WordXII",
                            "type": "CONTENT_LIST"
                        },
                        {
                            "name": "WordXIII",
                            "type": "CONTENT_LIST"
                        },
                        {
                            "name": "WordXIV",
                            "type": "CONTENT_LIST"
                        },
                        {
                            "name": "WordXV",
                            "type": "CONTENT_LIST"
                        },
                        {
                            "name": "WordXVI",
                            "type": "CONTENT_LIST"
                        },
                        {
                            "name": "WordXVII",
                            "type": "CONTENT_LIST"
                        },
                        {
                            "name": "WordXVIII",
                            "type": "CONTENT_LIST"
                        },
                        {
                            "name": "WordIXX",
                            "type": "CONTENT_LIST"
                        },
                        {
                            "name": "WordXX",
                            "type": "CONTENT_LIST"
                        },
                        {
                            "name": "WordXXI",
                            "type": "CONTENT_LIST"
                        },
                        {
                            "name": "WordXXII",
                            "type": "CONTENT_LIST"
                        },
                        {
                            "name": "WordXXIII",
                            "type": "CONTENT_LIST"
                        },
                        {
                            "name": "WordXXIV",
                            "type": "CONTENT_LIST"
                        },
                        {
                            "name": "WordXXV",
                            "type": "CONTENT_LIST"
                        },
                        {
                            "name": "WordXXVI",
                            "type": "CONTENT_LIST"
                        },
                        {
                            "name": "WordXXVII",
                            "type": "CONTENT_LIST"
                        },
                        {
                            "name": "WordXXVIII",
                            "type": "CONTENT_LIST"
                        },
                        {
                            "name": "WordIXXX",
                            "type": "CONTENT_LIST"
                        },
                        {
                            "name": "WordXXX",
                            "type": "CONTENT_LIST"
                        }
                    ],
                    "samples": [
                        "{WordI}",
                        "{WordI} {WordII}",
                        "{WordI} {WordII} {WordIII}",
                        "{WordI} {WordII} {WordIII} {WordIV}",
                        "{WordI} {WordII} {WordIII} {WordIV} {WordV}",
                        "{WordI} {WordII} {WordIII} {WordIV} {WordV} {WordVI}",
                        "{WordI} {WordII} {WordIII} {WordIV} {WordV} {WordVI} {WordVII}",
                        "{WordI} {WordII} {WordIII} {WordIV} {WordV} {WordVI} {WordVII} {WordVIII}",
                        "{WordI} {WordII} {WordIII} {WordIV} {WordV} {WordVI} {WordVII} {WordVIII} {WordIX}",
                        "{WordI} {WordII} {WordIII} {WordIV} {WordV} {WordVI} {WordVII} {WordVIII} {WordIX} {WordX}",
                        "{WordI} {WordII} {WordIII} {WordIV} {WordV} {WordVI} {WordVII} {WordVIII} {WordIX} {WordX} {WordXI}",
                        "{WordI} {WordII} {WordIII} {WordIV} {WordV} {WordVI} {WordVII} {WordVIII} {WordIX} {WordX} {WordXI} {WordXII}",
                        "{WordI} {WordII} {WordIII} {WordIV} {WordV} {WordVI} {WordVII} {WordVIII} {WordIX} {WordX} {WordXI} {WordXII} {WordXIII}",
                        "{WordI} {WordII} {WordIII} {WordIV} {WordV} {WordVI} {WordVII} {WordVIII} {WordIX} {WordX} {WordXI} {WordXII} {WordXIII} {WordXIV}",
                        "{WordI} {WordII} {WordIII} {WordIV} {WordV} {WordVI} {WordVII} {WordVIII} {WordIX} {WordX} {WordXI} {WordXII} {WordXIII} {WordXIV} {WordXV}",
                        "{WordI} {WordII} {WordIII} {WordIV} {WordV} {WordVI} {WordVII} {WordVIII} {WordIX} {WordX} {WordXI} {WordXII} {WordXIII} {WordXIV} {WordXV} {WordXVI}",
                        "{WordI} {WordII} {WordIII} {WordIV} {WordV} {WordVI} {WordVII} {WordVIII} {WordIX} {WordX} {WordXI} {WordXII} {WordXIII} {WordXIV} {WordXV} {WordXVI} {WordXVII}",
                        "{WordI} {WordII} {WordIII} {WordIV} {WordV} {WordVI} {WordVII} {WordVIII} {WordIX} {WordX} {WordXI} {WordXII} {WordXIII} {WordXIV} {WordXV} {WordXVI} {WordXVII} {WordXVIII}",
                        "{WordI} {WordII} {WordIII} {WordIV} {WordV} {WordVI} {WordVII} {WordVIII} {WordIX} {WordX} {WordXI} {WordXII} {WordXIII} {WordXIV} {WordXV} {WordXVI} {WordXVII} {WordXVIII} {WordIXX}",
                        "{WordI} {WordII} {WordIII} {WordIV} {WordV} {WordVI} {WordVII} {WordVIII} {WordIX} {WordX} {WordXI} {WordXII} {WordXIII} {WordXIV} {WordXV} {WordXVI} {WordXVII} {WordXVIII} {WordIXX} {WordXX}",
                        "{WordI} {WordII} {WordIII} {WordIV} {WordV} {WordVI} {WordVII} {WordVIII} {WordIX} {WordX} {WordXI} {WordXII} {WordXIII} {WordXIV} {WordXV} {WordXVI} {WordXVII} {WordXVIII} {WordIXX} {WordXX} {WordXXI}",
                        "{WordI} {WordII} {WordIII} {WordIV} {WordV} {WordVI} {WordVII} {WordVIII} {WordIX} {WordX} {WordXI} {WordXII} {WordXIII} {WordXIV} {WordXV} {WordXVI} {WordXVII} {WordXVIII} {WordIXX} {WordXX} {WordXXI} {WordXXII}",
                        "{WordI} {WordII} {WordIII} {WordIV} {WordV} {WordVI} {WordVII} {WordVIII} {WordIX} {WordX} {WordXI} {WordXII} {WordXIII} {WordXIV} {WordXV} {WordXVI} {WordXVII} {WordXVIII} {WordIXX} {WordXX} {WordXXI} {WordXXII} {WordXXIII}",
                        "{WordI} {WordII} {WordIII} {WordIV} {WordV} {WordVI} {WordVII} {WordVIII} {WordIX} {WordX} {WordXI} {WordXII} {WordXIII} {WordXIV} {WordXV} {WordXVI} {WordXVII} {WordXVIII} {WordIXX} {WordXX} {WordXXI} {WordXXII} {WordXXIII} {WordXXIV}",
                        "{WordI} {WordII} {WordIII} {WordIV} {WordV} {WordVI} {WordVII} {WordVIII} {WordIX} {WordX} {WordXI} {WordXII} {WordXIII} {WordXIV} {WordXV} {WordXVI} {WordXVII} {WordXVIII} {WordIXX} {WordXX} {WordXXI} {WordXXII} {WordXXIII} {WordXXIV} {WordXXV}",
                        "{WordI} {WordII} {WordIII} {WordIV} {WordV} {WordVI} {WordVII} {WordVIII} {WordIX} {WordX} {WordXI} {WordXII} {WordXIII} {WordXIV} {WordXV} {WordXVI} {WordXVII} {WordXVIII} {WordIXX} {WordXX} {WordXXI} {WordXXII} {WordXXIII} {WordXXIV} {WordXXV} {WordXXVI}",
                        "{WordI} {WordII} {WordIII} {WordIV} {WordV} {WordVI} {WordVII} {WordVIII} {WordIX} {WordX} {WordXI} {WordXII} {WordXIII} {WordXIV} {WordXV} {WordXVI} {WordXVII} {WordXVIII} {WordIXX} {WordXX} {WordXXI} {WordXXII} {WordXXIII} {WordXXIV} {WordXXV} {WordXXVI} {WordXXVII}",
                        "{WordI} {WordII} {WordIII} {WordIV} {WordV} {WordVI} {WordVII} {WordVIII} {WordIX} {WordX} {WordXI} {WordXII} {WordXIII} {WordXIV} {WordXV} {WordXVI} {WordXVII} {WordXVIII} {WordIXX} {WordXX} {WordXXI} {WordXXII} {WordXXIII} {WordXXIV} {WordXXV} {WordXXVI} {WordXXVII} {WordXXVIII}",
                        "{WordI} {WordII} {WordIII} {WordIV} {WordV} {WordVI} {WordVII} {WordVIII} {WordIX} {WordX} {WordXI} {WordXII} {WordXIII} {WordXIV} {WordXV} {WordXVI} {WordXVII} {WordXVIII} {WordIXX} {WordXX} {WordXXI} {WordXXII} {WordXXIII} {WordXXIV} {WordXXV} {WordXXVI} {WordXXVII} {WordXXVIII} {WordIXXX}",
                        "{WordI} {WordII} {WordIII} {WordIV} {WordV} {WordVI} {WordVII} {WordVIII} {WordIX} {WordX} {WordXI} {WordXII} {WordXIII} {WordXIV} {WordXV} {WordXVI} {WordXVII} {WordXVIII} {WordIXX} {WordXX} {WordXXI} {WordXXII} {WordXXIII} {WordXXIV} {WordXXV} {WordXXVI} {WordXXVII} {WordXXVIII} {WordIXXX} {WordXXX}"
                    ]
                },
                {
                    "name": "AMAZON.NavigateHomeIntent",
                    "samples": [
                        "navigate home"
                    ]
                }
            ],
            "types": [
                {
                    "name": "AMAZONSearchQuery",
                    "values": [
                        {
                            "name": {
                                "value": "all"
                            }
                        }
                    ]
                },
                {
                    "name": "CONTENT_LIST",
                    "values": [
                        {
                            "name": {
                                "value": "all"
                            }
                        }
                    ]
                }
            ]
        }
    }
}

注意:我使用此代碼作為捕獲所有技能。 這是唯一的意圖。 如果你正在尋找其他意圖,以便這個意圖能夠檢測出來的話,我建議你嘗試一下。 使用已定義的話語創建一個意圖,看看亞馬遜是否會選擇它,然后再回到這個自由形式的捕獲。

如果你有成功,請在下面評論,我會更新答案。

更新的答案:

Q1 :仍然無法獲得音頻。 但您可以像AMAZON.SearchQuery一樣使用內置插槽來獲取未指定的值。

Q2 :現在你可以使用SSML中的voice標簽,在你的技能中使用不同的聲音,如下所示:

<voice name="Kendra"><lang xml:lang="en-US">I want to tell you a secret.</lang></voice><voice name="Brian"><lang xml:lang="en-GB">Your secret is safe with me!</lang></voice>

他們各自的語言支持以下聲音:

英語,美國(en-US):Ivy,Joanna,Joey,Justin,Kendra,Kimberly,Matthew,Salli

英語,澳大利亞語(en-AU):Nicole,Russell

英語,英國(en-GB):艾米,布萊恩,艾瑪

英語,印度語(en-IN):Aditi,Raveena

德語(de-DE):Hans,Marlene,Vicki

西班牙語,卡斯蒂利亞語(es-es):Conchita,恩里克

意大利語(it-IT):Carla,Giorgio

日語(ja-JP):水木,拓海

法語(fr-FR):Celine,Lea,Mathieu

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM