web文字转语音

第一种:百度文字转语音开放API

1. 参数

接口:http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=2&text=你要转换的文字

lan=zh:(语言zh:中文;en:英文;fr:法文;)

ie=UTF-8:(字符集)

per=3(每3个字符停顿)

spd=2:(语音播放速度,数字越大越快0-15)

text=’’:(需要转换的文字)

2. 示例:

say1() {
    const url = 'http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&spd=2&text=我是杨少通!Hello World!';
    const audio = new Audio(url);
    audio.src = url;
    audio.play();
}

3. 注意:使用该接口必须连接网络

第二种:SpeechSynthesisUtterance

SpeechSynthesisUtterance是HTML5中新增的API,用于将指定文字合成为对应的语音.也包含一些配置项,指定如何去阅读(语言,音量,音调)等。

1. 属性

SpeechSynthesisUtterance.lang 获取并设置话语的语言

SpeechSynthesisUtterance.pitch 获取并设置话语的音调(值越大越尖锐,越低越低沉)

SpeechSynthesisUtterance.rate 获取并设置说话的速度(值越大语速越快,越小语速越慢)

SpeechSynthesisUtterance.text 获取并设置说话时的文本

SpeechSynthesisUtterance.voice 获取并设置说话的声音

SpeechSynthesisUtterance.volume 获取并设置说话的音量

2. 方法

speak() 将对应的实例添加到语音队列中

cancel() 删除队列中所有的语音.如果正在播放,则直接停止

pause() 暂停语音

resume() 恢复暂停的语音

getVoices 获取支持的语言数组. 注意:必须添加在voiceschanged事件中才能生效

3. 示例

 function say2() {
        const ssu = new
        SpeechSynthesisUtterance();
        ssu.text = '我是杨少通!Hello World!';
        ssu.lang = 'zh';
        ssu.rate = 0.8;
        speechSynthesis.speak(ssu);
}
window.onload=say2

第三种:微软TTS语音引擎

1. 注意:本方式仅支持IE浏览器,需要调用IE内置ActiveX控件

2. 安装方式:

1)下载、并安装插件:微软TTS5.1语音引擎(中文)

2)设置:安装好后,打开IE浏览器的Internet选项的安全中,点开自定义级别,打开各个站点,将“ActiveX控件和插件”下的所有栏目设为启用。

3. 属性:

voiceObj.Rate:设置说话语速 语音朗读速度,取值范围为-10到+10。数值越大,速度越快
voiceObj.Volume:设置说话音量 取值范围为0到100。数值越大,音量越大。

4. 方法:

voiceObj.Speak:朗读,将文本信息转换为语音并按照指定的参数进行朗读,该方法有Text和Flags两个参数,分别指定要朗读的文本和朗读方式(同步或异步等)。
voiceObj.GetVoices:获取系统中的语音,用于指定SpVoice的Voice属性。
voiceObj.Pause:暂停朗读,可暂停使用该对象的所有朗读进程。该方法没有参数。
voiceObj.Resume:恢复朗读,可恢复该对象所对应的被暂停的朗读进程。该方法没有参数。 voiceObj.Speak("",
2): 停止朗读,第一个参数设为空,第二个参数设为2

5. 示例

function say3() {
    const wordTemp = '我是杨少通!Hello World!';
    const axo = new ActiveXObject("Sapi.SpVoice"); 		
    axo.Speak(wordTemp); 
}

第四种:speak.js插件

1. 将speakClient.js文件引入到你的Web网页文件中(同时确保你已经将 speakWorker.js 和 speakGenerator.js 文件拷贝到和 speakClient.js 相同的目录中。)

<script src="speakClient.js" ></script>

2.在网页中添加一个ID为audio的DIV元素

<div id="audio">div>

3.在JavaScript中调用speak()方法将文字转换为语音

speak('hello world!');

4. 可选参数

amplitude:音量(默认值:100) pitch: 音高(默认:50) speed: 说话的速度(每分钟字数)(默认值:175)
voice: 要使用哪个语音(对于非默认语音,需要构建speak.js以包含正确的数据)。请参阅下面的语言支持(默认值:en/en us)
wordgap: 以10毫秒为单位的单词之间的额外间隔(默认值:0) noWorker:
不要使用web工作程序(请参阅下面的“体系结构”部分)

5.参数使用方法

speak('hello world', { pitch: 100 });

6. 运行原理

speakClient.js是与你互动的文件。它定义了speak(),并将在Web工作加载speakWorker.js文件。speakWorker环绕speakGenerator.js,所做的实际工作将字符串转换成WAV文件。wav格式的数据返回给speak(),然后发挥它在HTML音频元素。

你也可以使用speak.js没有网络工作者。在这种情况下,你不需要speakWorker.js,但你需要加载speakGenerator.js随着你的HTML页面speakClient.js。如果称为noworker设置为选择对象的真实,将直接调用WAV代码speakGenerator.js不是向工人,同样会做的呼叫转移。

7.多语言支持

speak.js是可以支持多种语言发音的,要做到这一点,你需要一个定制版的speak.js

绑定正确的语言文件,例如你想使用法语,你需要 fr_dict 和 voices/fr 文件目录,参见 emscripten.sh 和
bundle.py 文件了解更多详细内容。 将这些文件在文件系统的模拟,使用post.js文件,更多信息参见注释
运行emscripten.sh文件构建您的定制版speak.js
然后你需要调用speak()方法和配置声音选项,告诉它要用正确的语言。例如,对于法语来说这应该工作:

speak('boulanger', { voice: 'fr'});

下载地址:Speak.js

如有转载,请注明来源: http://www.dreamload.cn/blog/?p=886&preview=true

你可能感兴趣的:(Web前端,前端)