threejs中如何实现角色语音实时口型匹配?

JavaScript07

threejs中如何实现角色语音实时口型匹配?,第1张

1、首先,threejs是JavaScript编写的WebGL第三方库,提供了非常多的3D显示功能。打开软件使用语音识别等已有的技术。

2、其次,从音频中提取音位信息,并输入给训练好的模型。

3、最后,输出对应的人脸表情即可实现。

DAMO语音识别是基于微软语音识别引擎编写的TTS语音识别程序,将文字转换成声音。DAMO语音识别使用js调用音频播放,可加入音频控制播放样式来识别语言。将音频流实时识别为文字,适用于长句语音输入,视频字幕,会议,演讲字幕同屏等,智能语言处理,对识别中间结果进行智能纠错,快速识别音频流。

语音识别的主要问题:

1、对自然语言的识别和理解。首先必须将连续的讲话分解为词、音素等单位,其次要建立一个理解语义的规则。

2、语音信息量大。语音模式不仅对不同的说话人不同,对同一说话人也是不同的,例如,一个说话人在随意说话和认真说话时的语音信息是不同的。一个人的说话方式随着时间变化。

3、语音的模糊性。说话者在讲话时,不同的词可能听起来是相似的。这在英语和汉语中常见。

4、单个字母或词、字的语音特性受上下文的影响,以致改变了重音、音调、音量和发音速度等。

5、环境噪声和干扰对语音识别有严重影响,致使识别率低。

以上内容参考:百度百科-语音识别

HTML5之语音识别实例

代码

<input type="text" x-webkit-speech id="d1" lang="zh-CN" x-webkit-grammar="bUIltin:search" onwebkitspeechchange="foo()"/>

<script>

function foo(){

var n = document.getElementById("d1").value

if(n == "百度"){

window.location.href = "http://www.baidu.com"

}else{

window.location.href = "http://www.ahsdxy.ah.edu.cn/"

}

}

</script>

说明:

1)x-webkit-speech:语音识别支持属性

<input type="text" x-webkit-speech/>

2)lang:设置语言种类,比如汉语:lang="ch-CN"

<input type="text" x-webkit-speech lang="ch-CN"/>

3) x-webkit-grammar :语音输入语法

比如: x-webkit-grammar="bUIltin:search"使得语音输入的内容尽量靠近搜索内容,去除多余的字符,例如“的、啦”等

<input type="text" x-webkit-speech lang="ch-CN" x-webkit-grammar="bUIltin:search"/>

4) onwebkitspeechchange :语音输入事件,当语音改变时触发

比如:onwebkitspeechchange="foo()" ,当停止语音时,会触发js中的foo()函数

<input type="text" x-webkit-speech lang="ch-CN" x-webkit-grammar="bUIltin:search"

onwebkitspeechchange="foo()"/>

此时,需要写相应的JavaScript函数foo()

<script>

function foo(){

//函数体,如下:

alert(8)

}

</script>