SSML 音频而不是文字

SSML Audio instead of Words

我目前是 nodejs 的新手,但我一直在尝试使用 GitHub 上提供的 Nodejs 琐事示例制作 Alexa 技能。

代码中没有任何修改,只是内容(问题)。变化是,我想播放音频 MP3,而不是问题(单词)。 should/is 可以使用 SSML 音频

我尝试这样做,但我的技能不会那样工作,甚至不会启动。

这是原始示例:

{
   'What Makes Santa\'s Reindeer Fly?': [
      'Magical Reindeer Dust',
      'Fusion',
      'Amanita muscaria',
      'Elves',
   ],
},

我使用音频 SSML 所做的:

{
   '<audio src="link_to_the.mp3' />": [
      'Magical Reindeer Dust',
      'Fusion',
      'Amanita muscaria',
      'Elves',
   ],
},

github来源:https://github.com/alexa/skill-sample-nodejs-trivia/tree/en-US/lambda/custom

我在这里做错了什么?它应该有效,对吧?

请检查您的音频长度(音频文件不能超过九十 (90) 秒)并确保您已将 mp3 转换为正确的格式。

希望您已经阅读了本文档 - Using Audio in Your Response

编辑:- 嘿,我刚刚尝试并找到了解决方案。

  1. 在 question.js 文件中将 mp3 links 单独添加到问题中。

{ 'https://mp3_link': [ 'Magical Reindeer Dust', 'Fusion', 'Amanita muscaria', 'Elves', ], },

  1. 在index.js文件中,找到名为"spokenquestion"的变量,添加audio标签。查找以下示例

      const spokenQuestion = '<audio src="'+Object.keys(translatedQuestions[gameQuestions[currentQuestionIndex]])[0]+'" />';
    

注意:只有当您将 mp3 link 添加到所有问题中时,这才有效。如果有些问题有 mp3 links,有些问题有文字,那么请相应地添加条件。在下面查找示例

 if(question.substring have https) then audio else text

编辑 2 : 1.Add问题中的音频文件名。

{ 'name_of_the _audio_file': [ 'Magical Reindeer Dust', 'Fusion', 'Amanita muscaria', 'Elves', ], },

2.Add音频link在音频标签

const spokenQuestion = '<audio src="https://s3.amazonaws.com/s3_bucket_name/'+Object.keys(translatedQuestions[gameQuestions[currentQuestionIndex]])[0]+'.mp3" />';