Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript音频分析语音_Javascript_C++_Math_Audio_Audiocontext - Fatal编程技术网

JavaScript音频分析语音

JavaScript音频分析语音,javascript,c++,math,audio,audiocontext,Javascript,C++,Math,Audio,Audiocontext,我能够使用JavaScript中的AudioContext API分析音频数据,并将波形绘制到画布上 问题是,在加载音频数据后,我有大约1024个长UINT8数组数据点,表示波长(每帧),我如何猜测这会发出什么声音(从提到的语音中选择,即: Ⓐ 丽莎A 闭着嘴听“p”、“B”和“M”的声音。这与Ⓧ 形状,但嘴唇之间的压力非常小 Ⓑ 丽莎B 嘴巴微微张开,牙齿紧咬。这种口型用于大多数辅音(“K”、“S”、“T”等)。它也用于某些元音,如bee中的“EE”音 Ⓒ 丽莎C 张口。这种口型用于元音,如“

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

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

丽莎A

闭着嘴听“p”、“B”和“M”的声音。这与Ⓧ 形状,但嘴唇之间的压力非常小

丽莎B

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

丽莎C

张口。这种口型用于元音,如“EH”在男性中表示“EH”,以及“AE”在蝙蝠中表示“AE”。根据上下文,它也用于某些辅音

当从中设置动画时,此形状也用作中间位置Ⓐ 或Ⓑ 到Ⓓ. 因此,请确保动画ⒶⒸⒹ 及ⒷⒸⒹ 看起来很顺利

丽莎·D

张大的嘴。这种嘴的形状是用来表示元音的,像“AA”在“父亲”中一样

丽莎E

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

当从中设置动画时,此形状也用作中间位置Ⓒ 或Ⓓ 到Ⓕ. 确保嘴巴的张开度不比你的大Ⓒ. 二者都ⒸⒺⒻ 及ⒹⒺⒻ 应该会产生平滑的动画

丽莎F

皱起的嘴唇。这种口型在你身上用来表示“UW”,在show中用来表示“OW”,在way中用来表示“W”

丽莎G

上齿接触下唇的“F”和“V”分别为“F”和“V”

此扩展嘴形状是可选的。如果您的艺术风格足够详细,它将大大改善动画的整体外观。如果您决定不使用它,可以使用extendedShapes选项指定

丽莎·H

这种形状用于长的“L”音,舌头在上齿后面凸起。嘴巴至少应该像在牙齿中一样张开Ⓒ, 但还没有到现在为止Ⓓ.

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

丽莎X

空闲位置。此嘴形状用于讲话暂停。这应该与角色在不说话的情况下四处走动时使用的嘴图相同。它与Ⓐ, 但是嘴唇之间的压力要小一些Ⓧ, 嘴唇应该紧闭但放松

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

)?

我知道有很多机器学习选项,比如和,但是我想要一个算法来实时检测上述语音。它不一定要100%准确,只是比随机选取嘴的某些值稍微好一点。。。在这一点上,任何比随机更好的方法都可以

我知道音频识别可以用来完成,这是在中使用的,但我要寻找的是一个非常简单的算法,给定1024个每帧波长的数据数组,如何获取语音,同样,它不必100%准确,但必须是实时的,并且比随机的要好

基本上,pocketsphinx的问题在于它的目的是实现语音到单词的识别,因此它有很多额外的代码,用于将声音转换为它在字典中编译的确切单词,但我不需要只提取声音本身,而不将其转换为某些字典,所以理论上不应该有那么多的偷听

我只想要一个简单的算法,可以从AudioContext中获取已经获取的数据,相对地猜测上面列表中的声音是什么 再次强调,要非常清楚:


我不是在寻找PocketSphinx解决方案,也不是任何其他“随时可用”的库,我想要的只是上面提到的每种独特声音的数学公式,可以适用于任何编程语言

如果您不想要tensorflow答案,我不确定为什么要将其标记为
tensorflow
。如果您想要的是比随机更好的东西,那么几乎可以肯定,您最好使用PocketSphinx之类的包,并将返回的单词分解为它们的语音。你所要求的是相当困难的:看讨论为什么和的线程

然而,如果你绝对想找到一个算法来解决这个问题

在四处搜索时,我遇到的项目使用了机器学习,只有少数例外:从2008年开始,从1993年开始,扩展为完整的,从1997年开始。以下是作者在上一篇文章中使用的算法示例,仅适用于/R/声音:

他们说他们在C++中实现了算法,但不幸的是没有包含代码。 总之,我建议你坚持使用Pocketsphenx,除非这是你自己博士研究的一部分

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

Vosk支持9种语言,并且足够小,可以容纳