【问题标题】:SSML Audio instead of WordsSSML 音频而不是单词
【发布时间】:2018-05-30 16:37:30
【问题描述】:

我目前是 nodejs 的新手,但我一直在尝试使用 GitHub 上提供的 Nodejs Trivia Sample 来制作 Alexa Skill。

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

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

这是原始示例:

{
   '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

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

【问题讨论】:

  • 你所说的“技能不起作用,甚至无法启动”是什么意思?你是如何验证技能没有启动的?如果您使用的是 Lambda,您是否检查了 Lambda CloudWatch 日志?
  • 我只是让我的 Alexa 设备打开技能,但它不会启动,而是会引发错误。奇怪的是,如果我将 Audo SSML 标签放在 index.js 中,它可以工作,但不能在“const 问题”@ChackoMathew
  • @ChackoMathew CloudWatch 错误:dropbox.com/s/46j63zql4xys8ru/error_ssml.png
  • '&lt;audio src="link_to_the.mp3' /&gt;": 在代码中是这样的吗?还是复制时出现错误?更正为'&lt;audio src="link_to_the.mp3"/&gt;':
  • @ChackoMathew 复制时不会出错。还尝试了您告诉我的方式和不同的方式(使用空格,使用“和')并且是相同的。我认为这与导入问题的新方式有关?我看到的错误是“意外异常” TypeError:无法分配给字符串“blabla.mp3”的只读属性“60”。你知道我的意思吗?

标签: node.js alexa-skills-kit alexa-skill


【解决方案1】:

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

我希望你已经阅读了这个文档 - Using Audio in Your Response

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

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

{ 'https://mp3_link':[ '神奇的驯鹿尘', '融合', '毒蝇伞', “精灵”, ], },

  1. 在 index.js 文件中,找到名为“spokenquestion”的变量并将音频标签添加到其中。在下面找到示例

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

注意:这仅在您包含所有问题的 mp3 链接时才有效。如果有些问题有 mp3 链接,有些问题有文字,那么请相应地添加条件。在下面找到示例示例

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

编辑 2 : 1.在问题中添加音频文件名。

{ 'name_of_the_audio_file':[ '神奇的驯鹿尘', '融合', '毒蝇伞', “精灵”, ], },

2.在音频标签中添加音频链接

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

【讨论】:

  • 谢谢,但音频长度和格式设置正确。
  • 编辑了我的答案
  • 谢谢你,但它似乎仍然不起作用。我在 github.com/alexa/skill-sample-nodejs-trivia/blob/en-US/lambda/… 的两个地方(第 221 行和第 260 行)修改了你告诉我的内容;而 question.js 现在只有 mp3 链接。它仍然不会启动技能。你测试了吗?它对你有用吗?
  • 请分享您的完整代码。我已经测试过了,技能启动和音频播放成功。
  • 当然,pastebin.com/t6AwnJJw 谢谢。它只是原始版本,但只有德语。或者如果你把你的索引源发给我可能会更好? @卡南
猜你喜欢
  • 1970-01-01
  • 2018-11-23
  • 1970-01-01
  • 1970-01-01
  • 2019-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-07
相关资源
最近更新 更多