2016-08-24 4 views
3

Я пытаюсь войти в ASK, и я просто попробовал фиктивный пример с SSML. Я использую Amazon Lambda и Python. Если я проверить свой код с консоли Lambda я получаю ожидаемый результат:Alexa SSML не играет

{ 
    "version": "1.0", 
    "response": { 
    "outputSpeech": { 
     "text": "<speak><audio src='https://s3.amazonaws.com/aws-website-resources-1183x/dice-die-roll.mp3' />Three</speak>", 
     "type": "SSML" 
    }, 
    "shouldEndSession": true, 
    "card": { 
     "content": "Three.", 
     "type": "Simple", 
     "title": "Dice" 
    } 
    } 
} 

Когда я иду к служебному тренажеру Alexa и попробовать любой запрос, текст в выходной речи нет, кнопки «Listen» в консоль отключена, и если я попробовать его на Echo, он ничего не играет:

{ 
    "version": "1.0", 
    "response": { 
    "outputSpeech": { 
     "type": "SSML" 
    }, 
    "card": { 
     "content": "Three.", 
     "title": "Dice", 
     "type": "Simple" 
    }, 
    "shouldEndSession": true 
    } 
} 

Если скопировать/вставить SSML <speak><audio src='https://s3.amazonaws.com/aws-website-resources-1183x/dice-die-roll.mp3' />Three</speak> в голосовом тренажере я могу играть его, и он играет, как ожидалось. Я преобразовал mp3-файл с помощью ffmpeg: ffmpeg -y -i a.mp3 -ar 16000 -ab 48k -codec:a libmp3lame -ac 1 output.mp3, и я понимаю, что S3 Amazon следует доверять, что может быть проблемой? Я пробовал использовать одиночные и двойные кавычки в SSML, и я попытался избежать кавычек безрезультатно. Кто-нибудь знает, на что я должен смотреть?

+0

FYI, даже если я удалить аудио и я оставляю только ' Три' то же самое происходит. –

ответ

6

Dumb ошибка. Выход должен быть в ssml вместо text.

"outputSpeech": { 
     "ssml": "<speak><audio src='https://s3.amazonaws.com/aws-website-resources-1183x/dice-die-roll.mp3' />Three</speak>", 
     "type": "SSML" 
    }, 
Смежные вопросы