使用科大讯飞语音SDK实现文字在线合成语音_Android

最近需要使用到语音播报的功能,在百度七武器百度语音和科大讯飞的语音当中考虑到准确性和专业性,选择了科大讯飞。科大讯飞所提供的android开发sdk有两种一种是集成了自身产品语音+的sdk,功能比较强大但是会初始化语音服务模块;另一种是纯开发sdk不集成产品只需要导入相应jar包就可以使用。考虑到只用到了语音合成的技术所以选择了第二种sdk。

具体代码如下所示:

private SpeechSynthesizer mTts; private int isSpeaking = 0; mTts= SpeechSynthesizer.createSynthesizer(this, null); /*
   * 开始合成
   *
   * @param view
   */
  public void start() {
    mTts.setParameter(SpeechConstant.VOICE_NAME, "xiaoyan");
    mTts.setParameter(SpeechConstant.SPEED, "50");//设置语速
    mTts.setParameter(SpeechConstant.VOLUME, "80");//设置音量,范围 0~100
    mTts.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_CLOUD); //设置云端
    mTts.startSpeaking(search_word_content.getText().toString().trim(), mSynListener);
  }
//合成监听器
  private SynthesizerListener mSynListener = new SynthesizerListener(){
    //缓冲进度回调
    //percent为缓冲进度0~100,beginPos为缓冲音频在文本中开始位置,endPos表示缓冲音频在
    //文本中结束位置,info为附加信息。
    @Override
    public void onBufferProgress(int arg0, int arg1, int arg2, String arg3) {
      // TODO Auto-generated method stub
    }
    //会话结束回调接口,没有错误时,error为null
    @Override
    public void onCompleted(SpeechError arg0) {
      // TODO Auto-generated method stub
    }
    //会话事件回调接口
    @Override
    public void onEvent(int arg0, int arg1, int arg2, Bundle arg3) {
      // TODO Auto-generated method stub
    }
    //开始播放
    @Override
    public void onSpeakBegin() {
      // TODO Auto-generated method stub
    }
    //暂停播放
    @Override
    public void onSpeakPaused() {
      // TODO Auto-generated method stub
    }
    //播放进度回调
    //percent为播放进度0~100,beginPos为播放音频在文本中开始位置,endPos表示播放音频在文
    //本中结束位置.
    @Override
    public void onSpeakProgress(int arg0, int arg1, int arg2) {
      // TODO Auto-generated method stub
    }
    //恢复播放回调接口
    @Override
    public void onSpeakResumed() {
      // TODO Auto-generated method stub
    }
  };
if (isSpeaking == 0) {
        start();
        gif_no.setVisibility(View.INVISIBLE);
        gif.setVisibility(View.VISIBLE);
        isSpeaking = 1;
      } else if (isSpeaking == 1) {
        // 暂停播放
        mTts.pauseSpeaking();
        gif_no.setVisibility(View.VISIBLE);
        gif.setVisibility(View.INVISIBLE);
        isSpeaking = 2;
      } else if (isSpeaking == 2) {
        // 继续播放
        //System.out.println("..........");
        mTts.resumeSpeaking();
        isSpeaking = 1;
        gif_no.setVisibility(View.INVISIBLE);
        gif.setVisibility(View.VISIBLE);
      }
// 取消合成
    mTts.stopSpeaking();
    isSpeaking = 0; 

总结, 开始初始化,start方法里面设置参数,再根据需要调用停止和继续方法,假如换了文本调用取消合成方法,重新start方法

以上内容是小编给大家分享的使用科大讯飞语音SDK实现文字在线合成语音的全部叙述,希望大家喜欢。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索科大讯飞语音sdk
科大讯飞语音识别sdk、科大讯飞语音sdk、科大讯飞语音合成系统、科大讯飞语音合成7.6、科大讯飞语音合成,以便于您获取更多的相关知识。

时间: 2024-09-17 03:36:20

使用科大讯飞语音SDK实现文字在线合成语音_Android的相关文章

android-Android 文字转维吾尔族语音功能怎么实现,在线等

问题描述 Android 文字转维吾尔族语音功能怎么实现,在线等 语音合成,把文字转成维语并且读出来,怎么实现,用了科大讯飞,但是读不出来 解决方案 Android文字转语音Android文字转语音Android实现分享图片和文字的功能 解决方案二: Android本身支持维语吗?

社会化分享-关于科大讯飞语音sdk和sharesdk 分享的同时使用

问题描述 关于科大讯飞语音sdk和sharesdk 分享的同时使用 在一个软件中当我使用了科大讯飞的sdk 实现了语音的功能再去实现sharesdk 分享的功能时候发现 sharesdk的分享功能实现了,语音功能却已经没有用了 解决方案 实现sharesdk 分享是什么功能?科大讯飞的语音 SDK,好像不是免费的,怎么能 Share.

Android基于讯飞语音SDK实现语音识别_Android

一.准备工作 1.你需要android手机应用开发基础 2.科大讯飞语音识别SDK android版 3.科大讯飞语音识别开发API文档 4.android手机 关于科大讯飞SDK及API文档,请到科大语音官网下载:http://www.xfyun.cn/ 当然SDK和API有多个版本可选,按照你的需要下载,其次,下载需要填写资料申请注册,申请通过或可获得Appid 如下图,申请一个APPID,就可以了. 二.语音识别流程 1.创建识别控件 函数原型 Public RecognizerDialo

Android基于讯飞语音SDK实现语音识别

一.准备工作 1.你需要android手机应用开发基础 2.科大讯飞语音识别SDK android版 3.科大讯飞语音识别开发API文档 4.android手机 关于科大讯飞SDK及API文档,请到科大语音官网下载:http://www.xfyun.cn/ 当然SDK和API有多个版本可选,按照你的需要下载,其次,下载需要填写资料申请注册,申请通过或可获得Appid 如下图,申请一个APPID,就可以了. 二.语音识别流程 1.创建识别控件 函数原型 Public RecognizerDialo

图像与文字的合成

前几天要做一段程序,把文字和位图图像合成并保存为位图文件.但问了好久都没人给一个满意的答复,只好在黑暗中摸索,费了一番功夫,实现了图像与文字的合成,并且可用鼠标拖动文字.现在我把代码贴出,希望能给需要的朋友以帮助. 一.关键函数 1. int SetDIBits( HDC hdc, // 兼容DC的句柄 HBITMAP hbmp, // 兼容位图的句柄 UINT uStartScan, // 扫描起始行的编号 UINT cScanLines, // 扫描的行的数目 CONST VOID *lpv

代码-如何使用mediaId来播放微信语音?着急,在线等。。。。

问题描述 如何使用mediaId来播放微信语音?着急,在线等.... 微信JSSDK的wx.config配置好了,wx.ready也能通过,当我点击按钮的时候播放微信语音,如何实现?目前代码是: //通过ready接口处理成功验证 wx.ready(function (){ alert(123); }); function getVoice(mediaId){ alert(""播放语音""); wx.downloadVoice({ serverId: 'mediaI

android sdk-谁有mac版继承Android SDK的eclipse(不需要再在Android SDK Manager里在线下载的)

问题描述 谁有mac版继承Android SDK的eclipse(不需要再在Android SDK Manager里在线下载的) Https://dl-ssl.google.com确实让人抓狂,离线下载又不清楚下载路径跟对应目录:eclipse跟SDK都已经装好,就差version 17的Android SDK Tools以及不知道该放哪个目录.新建Android工程报错:Errors occurred during the build.Errors running builder 'Andro

集成百度语音sdk到智能家居平台中

今天,周六,晚上有约会.不过有些任务必须逼迫自己赶紧完成.要构造一个完善的系统不是三天打鱼两天晒网能够完成的,必须严格按计划执行下去,持之以恒.终有一日会形成规模效应.做Demo很容易,做产品,很难. 百度SDK的集成在它 的官网有完整的教材. 1 申请,你首先需要通过百度的验证,给你开放. 2 集成,集成分为深度定制和使用百度提供的UI快速集成. 具体step-by-step的东西,参考它的手册即可. 我这里只记录一些个人认为有价值的东西. 1 语义理解 "SDK 还支持语义理解能力,可以将用

C语音格式问题~新手在线等

问题描述 C语音格式问题~新手在线等 为什么n%5==0,输出却有空格,而n%10==0输出就没问题 代码如下: #include #include int main() int i,j,k,n=0; for(i=101;i<=200;i=i+2) { k=sqrt(i); for(j=2;j<=k;j++) if(i%j==0) break; if(j>=k+1) { printf("%4d",i); n=n+1; } if(n%5==0) printf("