2017-05-09 106 views
2

是否有可能在Alexa技能中使用亞馬遜Polly在翻譯或其他多語言環境中提供2語言響應? 如果是的話,誰有使用lambda函數使用此服務的經驗?亞馬遜波莉在Alexa技能?

回答

4

簡短的回答,沒有,在這一刻不可能直接使用亞馬遜技能的亞馬遜波利。 Polly mp3s不是alexa技能所需的比特率。

您可以將MP3文件波利給你但是轉換成48kbps的正確比特率,然後用它在音頻SSML標籤,按本open source project, alexa-meets-polly.

從Alexa的薈萃波利:

  1. 用戶與Alexa設備通話並要求輸入「波蘭語」早安「意味着什麼?」

  2. Alexa服務將語音映射到翻譯意圖,並通過具有值波蘭語和具有值早安的術語插槽的語言插槽。其代碼包含在此Repo中的AWS Lambda函數可捕獲Speechlet。

  3. 在進行翻譯文本的過程中,此技能首先會查看其存儲所有以前翻譯的字典。如果它在數據庫中找到波蘭語Good Morning的記錄,則會跳過整個往返(步驟4至9),並立即使用Dynamo記錄中引用的S3音頻文件。

  4. 但是,如果Good Morning在波蘭語沒有被要求,那麼技能實現可以通過利用Microsoft Translator API(或與Google Translate可互換)將術語Good Morning翻譯爲波蘭語。

  5. 然後將生成的翻譯傳遞給AWS Polly,併爲其提供所需的VoiceId。 Polly返回帶有口語翻譯術語的MP3流。

  6. 該流在AWS S3中作爲MP3文件保存。不幸的是,由於Alexa上的SSML音頻需要不同的音頻設置,所以尚未準備好在Alexa中返回並播放。

  7. 因此,MP3-Url被提供給託管在AWS EC2服務器實例中的自定義服務端點。根據Alexa的要求,該服務將比特率轉換爲48Khz,並在FFMPEG的幫助下進行。即使將音量調高到最大,Polly的聲音也不如Alexa的聲音大。這就是爲什麼這種轉換還能將音量提高10dB。

  8. 由此產生的MP3覆蓋其來源在S3。

  9. 該文件的Url(根本沒有改變)返回給Lambda中的調用speechlet處理程序。

  10. 最後,在Dynamo字典中爲波蘭語Good Morning創建了一條記錄。一個單獨的記錄涉及到該詞典條目是爲用戶創建的,因此Alexa會記住爲用戶進行的最後一次翻譯。這是用戶如何請求Alexa重複最近的翻譯。

  11. 該技能創建輸出語音文本並擠入帶有MP3-url的音頻-SSML標籤。

  12. 輸出語音返回到設備。 Alexa回覆並用Polly的聲音播放翻譯後的詞語。此外,一張卡片將返回到Alexa應用程序,提供可能對用戶非常有用的書面翻譯。

+0

謝謝。很好的解釋! –

+0

我第二個KayLerch的alexa-meets-polly例子,這是一個很好的例子。 – wblaschko

相關問題