百度语音播报js代码

           近日开发项目时,遇到需要用到语音播报功能,在百度搜索一番之后,发现了百度提供了语音播报接口,我就在项目中使用了百度提供的 http://tts.baidu.com/text2audio 这个语音播报接口实现 语音播报功能。下面记录下开发过程中遇到的一些或者说需要注意的问题以及相关代码。

        一.版本1

             最开始时候用的是如下代码:先定义一个方法,传入需要播报的文本参数,在需要播报的地方调用该方法播报:

function sound(str){
		var obj=document.createElement("embed");
		obj.style.width=0;
		obj.style.height=0;
		obj.src="http://tsn.baidu.com/text2audio?lan=zh&cuid=9C-4E-36-43-DB-D0&ctp=1&vol=9&tok=24.5760f9c29a27f22f21fd0e9410ffbef0.2592000.1505287074.282335-10005162&tex="+str;
		obj.loop=0;
		document.body.appendChild(obj);
}
            测试后发现一个问题就是,播报出来的内容 和 传入的需要播报的文本不一致,看了一下百度语音播报的api发现
百度实时语音识别(ASR)是百度云提供的一项语音识别服务,它可以将实时的语音数据转化为文本内容。下面是一个使用WebSocket和JavaScript编写的前端代码示例: 首先,你需要在HTML文件中创建一个WebSocket对象和一些用于显示结果的元素,比如一个文本框和一个按钮。然后,你需要定义一些用于处理WebSocket连接和接收语音识别结果的函数。 ```html <!DOCTYPE html> <html> <body> <textarea id="result" rows="10" cols="50"></textarea> <button onclick="startListening()">开始识别</button> <script> var recognition; // WebSocket连接地址 var socketUrl = "wss://vop.baidu.com/realtime_asr"; // 启动语音识别 function startListening() { recognition = new WebSocket(socketUrl); // 连接成功时的处理函数 recognition.onopen = function (event) { console.log("WebSocket 连接已建立"); // 发送配置信息 var config = { "accept-audio-data": true, "content-type": "audio/pcm;rate=16000", }; recognition.send(JSON.stringify(config)); }; // 接收到语音识别结果时的处理函数 recognition.onmessage = function (event) { var result = event.data; document.getElementById("result").value += result; }; // 连接关闭时的处理函数 recognition.onclose = function (event) { console.log("WebSocket 连接已关闭"); }; // 发生错误时的处理函数 recognition.onerror = function (event) { console.error("WebSocket 错误:", event); }; } </script> </body> </html> ``` 在上面的代码中,我们首先定义了一个`recognition`变量用于存储WebSocket对象。然后,在`startListening`函数中,我们创建一个WebSocket连接,并设置其`onopen`、`onmessage`、`onclose`和`onerror`事件的处理函数。在`onopen`处理函数中,我们发送配置信息给WebSocket服务器。在`onmessage`处理函数中,我们将接收到的语音识别结果显示在文本框中。 需要注意的是,为了使用百度实时语音识别服务,你需要在百度云平台上创建一个应用,并获取到相应的App ID、API Key和Secret Key,并在上述代码中相应地配置。 希望这个代码示例能够帮助你使用百度实时语音识别服务进行语音识别。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值