Alexa 是如何编程来唱歌的?

如何解决Alexa 是如何编程来唱歌的?

如果你说“Alexa,为我唱歌”,她会选择几首用她的声音创作的歌曲中的一首。每首歌曲的声音都必须以某种方式创建。

起初,我认为 SSML 会提供执行此操作所需的工具,尤其是 <prosody> tag,它具有 pitchrate(持续时间)的参数。

我想也许唱歌的每个音节都可以用 <phoneme> 指定发音,用 <prosody> 指定音高和持续时间,中间有 <break> 标签

<speak>
  <prosody rate="20%">
    <phoneme alphabet="x-sampa" ph="U">oo</phoneme>
    <break strength="none" />
  </prosody>
  <prosody rate="20%" pitch="+50%">
    <phoneme alphabet="x-sampa" ph="U">oo</phoneme>
    <break strength="none" />
  </prosody>
  <prosody rate="20%">
    <phoneme alphabet="x-sampa" ph="U">oo</phoneme>
  </prosody>
</speak> 

但是,在执行时,Alexa 应用了她的内置音调(听起来像真人),因此语气并不平坦。例如,这些“ooh”声音(上图)每个都有下降音。 (即使明确指定了“不中断”,它们在音素之间也有明显的中断。)

那么,听到所有这些歌曲的 Alexa 声音是如何被编程的?是通过目前仅对亚马逊开发者可用的工具吗?

令我感到困惑的是,我显然是互联网上唯一一个甚至提出这个问题的人(基于 stackoverflow、google 等的零结果),尤其是在游戏后期。不是有很多音乐家愿意让 Alexa 随心所欲地唱歌吗?

编辑:伙计们,我认为这是常识,但 there is no human voice actor 落后于 Alexa。她的声音完全由计算机生成

解决方法

Alexa 的声音完全由计算机生成,歌曲也是如此。正在研究生成歌唱合成器模型(#1#2)。

这是 Popgun Labs 关于 how they make their AI sing 的视频。虽然我无法找到亚马逊和谷歌是如何做到这一点的,但我猜应该是类似的。

编辑:我之前的回答是基于扩展页面并得出了不正确的结论。

,

我的预测要么是像自然语言处理这样的真正奇特的东西,要么是类似的东西,人工智能/机器学习,或者他们只是让配音演员唱出一些东西或唱出特定的音调,然后把它们剪在一起,我没有Alexa,但我确实有 HomePod mini 和 iPhone 以及它发音我们当地歌手名字的方式,例如“sidhu moosewala”或“amrit maan”(题外话但仍然相关)我相信他们只是将单词剪切并组合成“干净的” ”和“流动”的方式。

,

也许她的声音只是自动调整

当然,音高转换工具可以从任何音频源强制任何想要的音高,我认为这些工具也可以强制改变持续时间。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?