【问题标题】:JavaScript audio analyze phoneticsJavaScript 音频分析语音
【发布时间】:2020-09-18 13:21:16
【问题描述】:

我能够使用 JavaScript 中的 AudioContext API 分析音频数据并将波形绘制到画布上。

问题是,加载音频数据后,我有大约 1024 长的 Uint8Array 数据点代表波长(每帧),我如何猜测这是在发出什么声音(从提到的语音选择 @987654321 @,即:

丽莎

闭口发“P”、“B”和“M”音。这几乎与Ⓧ形状相同,但双唇之间的压力非常轻微。

丽莎B

嘴巴微微张开,牙齿咬紧。这种口型用于大多数辅音(“K”、“S”、“T”等)。它也用于一些元音,例如蜜蜂中的“EE”音。

丽莎C

张开嘴。这种嘴形用于元音,如男性中的“EH”和蝙蝠中的“AE”。它也用于某些辅音,具体取决于上下文。

当动画从Ⓐ或Ⓑ到Ⓓ时,此形状也用作中间。所以请确保动画ⒶⒸⒹ和ⒷⒸⒹ看起来流畅!

丽莎

张大嘴巴。这种嘴形用于像父亲中的“AA”这样的元音。

丽莎

嘴巴略圆。这种嘴形用于元音,如 off 中的“AO”和bird 中的“ER”。

当动画从Ⓒ或Ⓓ到Ⓕ时,此形状也用作中间。确保嘴巴张得比Ⓒ大。 ⒸⒺⒻ和ⒹⒺⒻ都应该产生流畅的动画。

丽莎F

皱起的嘴唇。这种嘴型用于表示“UW”,如你,“OW”表示显示,“W”表示方式。

丽莎

上齿与下唇接触,“F”如 for 和“V”如very。

这种扩展的嘴形是可选的。如果你的美术风格足够细致,它会大大提高动画的整体外观。如果您决定不使用它,可以使用 extendedShapes 选项指定。

丽莎赫

这种形状用于长“L”音,舌头在上牙后面抬起。嘴巴至少应该像Ⓒ那样张开,但不要像Ⓓ那样完全张开。

这种扩展的嘴形是可选的。根据您的艺术风格和头部的角度,舌头可能根本不可见。在这种情况下,绘制这个额外的形状是没有意义的。如果您决定不使用它,可以使用 extendedShapes 选项指定。

丽莎 X

空闲位置。这种嘴型用于讲话中的停顿。这应该与您的角色在不说话的情况下四处走动时使用的嘴图相同。它与Ⓐ几乎相同,但嘴唇之间的压力稍小:对于Ⓧ,嘴唇应该闭合但放松。

这种扩展的嘴形是可选的。休息位置Ⓧ和闭嘴Ⓐ之间是否应该有任何明显的差异取决于您的艺术风格和个人品味。如果您决定不使用它,可以使用 extendedShapes 选项指定。

)?

我知道有很多机器学习选项,例如 MeydaTensorflowother machine learning methodss,但我想要一个算法来实时去除上述语音。它不一定要 100% 准确,只是比随机选择嘴巴的某些值稍微好一点......在这一点上,任何比随机更好的东西都可以。

我知道音频识别可以用PocketSphinx.js 完成,这在rhubarb lipsink for its calculations 中使用,但我正在寻找的只是一个非常简单的算法,给定每帧波长的 1024 数据阵列,关于如何获得语音,同样,它不一定要 100% 准确,但它必须是实时的,并且比随机更好。

基本上,pocketsphinx 的问题在于它的目的是获得语音到单词的识别,所以它有很多额外的代码可以将声音翻译成它在字典中编译的确切单词,但我不知道'不需要我只需要提取声音本身,而不需要将它们转换为一些字典,所以理论上不应该有那么多偷听。

我只想要一个简单的算法,它可以从 AudioContext 中获取已经获取的数据,来相对地猜测上面提到的列表中正在发出什么声音 再次,非常清楚:

不是在寻找 PocketSphinx 解决方案,也不是任何其他“准备就绪”库,我想要的只是上面提到的每个独特声音的数学公式,即可以适应任何编程语言

【问题讨论】:

    标签: javascript c++ math audio audiocontext


    【解决方案1】:

    如果您不想要 TensorFlow 的答案,我不确定为什么会将此标记为 tensorflow。如果你想要的只是比随机更好的东西,你几乎肯定最好使用像 PocketSphinx 这样的包并将返回的单词分解成它们的语音。您的要求非常困难:请参阅讨论为什么 herehere 的线程。

    但是,如果您绝对热衷于为此寻找算法......

    四处搜索,most 发现使用机器学习的项目,除了少数:this paper 来自 2008 年,this one 来自 1993 年,扩展为完整的Ph.D dissertation,以及这个@987654327 @ 从 1997 年开始。以下是作者在上一篇中使用的算法示例,仅针对 /R/ 声音:

    论文说他们用 C++ 实现了他们的算法,但不幸的是没有包含代码。

    归根结底,我建议坚持使用 PocketSphinx,除非这是您自己的博士研究的一部分!

    更新:

    应要求在此处添加更多详细信息。 Pocketsphinx 解释说,如果你一直向下滚动到他们readme 中的第 8 部分,他们会使用一个名为 Sphinxtrain 的机器学习平台,该平台也提供法语和中文版本。但是在 Sphinxtrain 页面的顶部,有一个指向他们的“新库”的链接,名为 Vosk

    Vosk 支持 9 种语言,并且体积小到可以安装在 Raspberry Pi 上,因此它可能更接近您的需求。反过来,它使用名为Kaldi 的开源 C++ 语音识别工具包,该工具包也使用机器学习。

    我相信您知道,Arduinos 比 Raspberry Pis 受到的限制要多得多,因此如果您正朝着这个方向前进,您可能非常想与 MIT 论文的作者联系。作者使用 200 MHz Pentium Pro 处理器和 32 MB RAM,这大约是最好的 Arduino 的功率水平:Arduino Yun 2 包括一个 400 MHz Linux 微处理器和 64 MB RAM。

    希望这能让你有足够的时间去咀嚼。祝你好运!

    【讨论】:

    • 好的,感谢您的研究论文,知道pocketsphinx 是由什么制成的吗?他们使用机器学习或算法吗?顺便说一句,这可能是一篇 PHD 论文的理论,但我确实想要一个算法,因为我可能想在 arduino 和其他东西中实现这个,其中 pocketsphinx 开销太大,也在浏览器中,pocketsphinx 大约 10mb 因为它必须包括整个字典,它只适用于英语单词,它的主要功能是语音到文本,我不关心,所以我想要消除开销
    • 另外,您是如何从最后一个链接获得该公式的,我无法找到 1997 年的任何论文,而我找到的那些需要登录?
    • 旁边有一个带有“PDF”的小链接。 Here 是直接链接。
    • 我已根据您的问题更新了我的答案,并提供了更多详细信息。
    • 嗨,谢谢,虽然我真正要寻找的只是只有算法,真的没有机器学习,R 声音的第一张图片非常好,正是我想要的我正在寻找,虽然我查看了那篇论文并且找不到其他声音的任何内容,如果您可以提供某种参考来说明我在哪里可以找到这些声音,那么这将是公认的答案
    猜你喜欢
    • 1970-01-01
    • 2014-01-19
    • 2016-08-07
    • 2022-10-15
    • 1970-01-01
    • 1970-01-01
    • 2019-06-21
    • 2015-08-05
    • 2014-12-19
    相关资源
    最近更新 更多