vue 实现百度语音合成(语音播报)

这里我完全依照百度提供的语音合成api来做:https://ai.baidu.com/docs#/TTS-Online-Node-SDK/top 直接去看node.js SDK。

1.换取access_token:

参考:https://ai.baidu.com/docs#/TTS-API/top,在这里用浏览器换取token

2.下载sdk依赖:

npm install baidu-aip-sdk

完整代码(非原创,参考了一个demo,但是很久以前写的找不到了):

btts(text) {
      console.log(text);    //以下参数参考api文档,token和人的声音音色之类的参数
      var param={
            tex: text,
            tok: ‘24.e835483633e8680242bb042693e1c071.********.1573463462.******-16425747‘,//这个token要换成自己的
            spd: 5,
            pit: 5,
            vol: 15,
            per: 4
        };
      var url = ‘http://tsn.baidu.com/text2audio‘;
      var p = param || {};
      var that = this;
      var xhr = new XMLHttpRequest();
      xhr.open(‘POST‘, url);

    // 创建form参数

   var data = {};

     for (var p in param) {

          data[p] = param[p]
      }

    // 赋值预定义参数

     data.cuid = data.cuid || data.tok;

      data.ctp = 1;
      data.lan = data.lan || ‘zh‘;    //以上为封装请求的参数

     // 序列化参数列表

    var fd = [];
      for(var k in data) {
          fd.push(k + ‘=‘ + encodeURIComponent(data[k]));
      }

      var frd = new FileReader();
      xhr.responseType = ‘blob‘;
      xhr.send(fd.join(‘&‘));

    //请求返回结果处理
      xhr.onreadystatechange = function() {
          if (xhr.readyState == 4) {
              if (xhr.status == 200) {
                  if (xhr.response.type == ‘audio/mp3‘) {              //创建audio对象进行播报
                      var audio = new Audio();
                      audio.setAttribute(‘src‘, URL.createObjectURL(xhr.response));
                      audio.play();
                      audio=null;
                  }else{            //这里如果百度语音合成的接口返回类型不是audio/mp3,是json的话,代表你的参数有问题,返回结果失败,具体可以查看api文档
                alert("调用语音合成接口token已失效!");
                }
              }else{
                alert("语音合成接口调用失败!");
              }
          }
      }
    }

原文地址:https://www.cnblogs.com/xjx199403/p/11670522.html

时间: 2024-07-30 15:42:08

vue 实现百度语音合成(语音播报)的相关文章

实现百度地图导航Demo的语音播报功能

上文中实现了在本地导入百度地图导航Demo,那么在此基础上如何实现导航的语音播报呢? 一.为该应用申请语音播报(也叫注册) http://developer.baidu.com/map/index.php?title=android-navsdk/guide/voice SDK内置百度TTS语音播报功能,需要对应用进行授权验证才能够使用,因此需要主动注册应用相关信息. 第一步:如果不是LBS开放平台的注册开发者,首先需要登录LBS开放平台进行应用注册,在工程配置的AndroidManifest中

文字转语音,语音合成,文字语音播报---解决过程

做了很久生产项目 经常遇到一个问题:就是想把文字用语音播报出来:当然了声音要清晰,好听,不能太机械.  这个问题怎么解决呢?一般不外乎两种方法,第一种,将文字录成MP3格式用控件播放.另外一种:直接文字语音播报. 我一直都是用第一种方法居多,但是最近遇到个棘手的事情,就是数量巨大和文字变动较大.因此深入研究了下,记录下过程. 第一种方法:就是费时费力但是好处是人工转换了删选了效果比较好.但是两大或者文字变动 是个大隐患. 第二种方法:用微软自带的tts引擎,效果不好.播放不清晰,好处是com组件

Android studio 百度地图开发(10)语音播报的问题:能正常导航,但是无法语音播报

一.前言 第一次做导航时,并没有关注语音播报,今天特意把这个功能完善一下.但是发现关于语音播报的实现也遇到了一些问题,在官方的讨论区也发现关于语音播报的问题特别多,问题基本都是:能正常导航,但是无法语音播报.于是把自己的一些理解和解决方法记录一下,希望能帮助到其他有问题的朋友. 二.需要做的事情 1.配置问题 除了地图显示.定位.导航需要的配置之外,tts播报需要添加白名单,点击前往.如下所示: 这里有关键地方必须留意: 应用包名:这个基本没问题 应用签名:这个签名不是申请AK时的SHA1,而是

百度语音合成简单案例(将文字转化为相应的语音)

参考链接:http://ai.baidu.com/docs#/TTS-API/top 1.项目的目录结构 2.效果图 3核心代码 TtsMain.java package com.baidu.speech.restapi.ttsdemo; import com.baidu.speech.restapi.common.DemoException; import com.baidu.speech.restapi.common.ConnUtil; import com.baidu.speech.res

百度语音合成(TTS)SDK使用方法

语音合成是实现人机语音交互,建立一个有听和讲能力的交互系统所必需的关键技术. 这篇文章将介绍如何使用百度Android语音合成SDK. 与语音识别SDK类似,使用语音合成SDK也需要注册,并开启语音合成API服务,详细步骤可以参考   点击打开链接        中的注册部分. 百度语音合成SDK以JAR包+动态链接库形式发布,需要开发者在        点击打开链接      下载SDK开发包,并将libs文件夹拷贝到工程中 申请必要的权限 [java] view plaincopy <use

PHP实现智能语音播报

原文地址 https://www.jianshu.com/p/91a046ec6ebc 大家估计都知道现在很多AI音响能够给你播报天气,叫你起床...甚至能够接受语音指令!所谓的人工智能音响,听起来很高大上,都说PHP是最好的编程语言,今天我就带大家来实现一个语音播报功能,写个美女叫你早上起床!先大体说一个思路,PHP怎么实现语音播报呢?其实就是调个API(接口)的事情,这个就尴尬了.实际上,现在很多AI平台都提供一些成熟的接口供你使用,比如语音转文字,文字转语音,语音唤醒等等,这里我使用的是百

Android语音播报、后台播报、语音识别

Android语音播报.后台播报.语音识别 本文介绍使用讯飞语音实现语音播报.语音识别功能. 讯飞开放平台:http://www.xfyun.cn/index.php/default/index 程序效果图: 简单的XML布局 <?xml version="1.0" encoding="utf-8"? > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/and

iOS - 根据推送消息进行语音播报

目前市面上很多聚合支付APP都需要在收款成功后,进行语音提示,例如收钱吧,乐惠等!公司App融E收也同样需要实现改功能,主要分为2个部分,一是推送,而是语音播报,下面简单介绍一下 一 推送,目前集成的推送主要是极光推送,集成极光推动的流程比较简单,主要流程是 1.注册账号,在极光推送官网上注册账号,地址:https://www.jiguang.cn/accounts/register/form 2.登录账号,右上角点击创建应用,填写应用名称,上传应用icon,点击创建 3.上传推送证书,做APN

jQuery.speech实现文本转语音播报功能

先放一个实例的地址https://github.com/wenco/speech jQuery.speech是用jQuery写的扩展插件,主要是用来语音播报. 接口调用百度翻译的接口,所以存在url参数长度问题.百度接口本身也不允许长文本调用,只能短文本调用. 初始参数详解: "speech": true, //通过点击链接播报,还是直接播报 "lang": "zh", //语言 "speed": 3, //语速 "