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

语音合成是实现人机语音交互,建立一个有听和讲能力的交互系统所必需的关键技术。

这篇文章将介绍如何使用百度Android语音合成SDK。

与语音识别SDK类似,使用语音合成SDK也需要注册,并开启语音合成API服务,详细步骤可以参考   点击打开链接        中的注册部分。

百度语音合成SDK以JAR包+动态链接库形式发布,需要开发者在        点击打开链接      下载SDK开发包,并将libs文件夹拷贝到工程中

申请必要的权限

[java] view
plain
copy

  1. <uses-permission android:name="android.permission.INTERNET"></uses-permission>
  2. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
  3. <uses-permission android:name="android.permission.READ_PHONE_STATE"/>

初始化SpeechSynthesizer对象

[java] view
plain
copy

  1. speechSynthesizer = new SpeechSynthesizer(getApplicationContext(),
  2. "holder", this);
  3. // 此处需要将setApiKey方法的两个参数替换为你在百度开发者中心注册应用所得到的apiKey和secretKey
  4. speechSynthesizer.setApiKey("your-apiKey", "your-secretKey");

参数设置

[java] view
plain
copy

  1. private void setParams() {
  2. speechSynthesizer.setParam(SpeechSynthesizer.PARAM_SPEAKER, "0");
  3. speechSynthesizer.setParam(SpeechSynthesizer.PARAM_VOLUME, "5");
  4. speechSynthesizer.setParam(SpeechSynthesizer.PARAM_SPEED, "5");
  5. speechSynthesizer.setParam(SpeechSynthesizer.PARAM_PITCH, "5");
  6. speechSynthesizer.setParam(SpeechSynthesizer.PARAM_AUDIO_ENCODE, "1");
  7. speechSynthesizer.setParam(SpeechSynthesizer.PARAM_AUDIO_RATE, "4");
  8. speechSynthesizer.setParam(SpeechSynthesizer.PARAM_LANGUAGE, "ZH");
  9. speechSynthesizer.setParam(SpeechSynthesizer.PARAM_NUM_PRON, "0");
  10. speechSynthesizer.setParam(SpeechSynthesizer.PARAM_ENG_PRON, "0");
  11. speechSynthesizer.setParam(SpeechSynthesizer.PARAM_PUNC, "0");
  12. speechSynthesizer.setParam(SpeechSynthesizer.PARAM_BACKGROUND, "0");
  13. speechSynthesizer.setParam(SpeechSynthesizer.PARAM_STYLE, "0");
  14. speechSynthesizer.setParam(SpeechSynthesizer.PARAM_TERRITORY, "0");
  15. }

不需要实现这么多参数,具体参数的含义可以参看SDK的使用文档和参数设置。

如果需要对音频播报的音频流进行设置,可以调用如下接口

[java] view
plain
copy

  1. speechSynthesizer.setAudioStreamType(AudioManager.STREAM_MUSIC);

以上内容即可以实现语音合成的操作,识别过程中可以使用SpeechSynthesizerListener来监听状态,从而更好的实现界面同步。

[java] view
plain
copy

  1. class listener implements SpeechSynthesizerListener {
  2. @Override
  3. public void onStartWorking(SpeechSynthesizer synthesizer) {
  4. logDebug("开始工作,请等待数据...");
  5. }
  6. @Override
  7. public void onSpeechStart(SpeechSynthesizer synthesizer) {
  8. logDebug("朗读开始");
  9. }
  10. @Override
  11. public void onSpeechResume(SpeechSynthesizer synthesizer) {
  12. logDebug("朗读继续");
  13. }
  14. @Override
  15. public void onSpeechProgressChanged(SpeechSynthesizer synthesizer, int progress) {
  16. }
  17. @Override
  18. public void onSpeechPause(SpeechSynthesizer synthesizer) {
  19. logDebug("朗读已暂停");
  20. }
  21. @Override
  22. public void onSpeechFinish(SpeechSynthesizer synthesizer) {
  23. logDebug("朗读已停止");
  24. }
  25. @Override
  26. public void onNewDataArrive(SpeechSynthesizer synthesizer, byte[] dataBuffer, int dataLength) {
  27. logDebug("新的音频数据:" + dataLength);
  28. }
  29. @Override
  30. public void onError(SpeechSynthesizer synthesizer, SpeechError error) {
  31. logError("发生错误:" + error.errorDescription + "(" + error.errorCode + ")");
  32. }
  33. @Override
  34. public void onCancel(SpeechSynthesizer synthesizer) {
  35. logDebug("已取消");
  36. }
  37. @Override
  38. public void onBufferProgressChanged(SpeechSynthesizer synthesizer, int progress) {
  39. }
  40. }

Android语音合成(TTS)SDK使用方法,布布扣,bubuko.com

时间: 2024-08-25 12:45:20

Android语音合成(TTS)SDK使用方法的相关文章

【Android语音合成TTS】百度语音接入方法,和使用技巧详解

请尊重他人的劳动成果,转载请注明出处:[Android语音合成TTS]百度语音接入方法,和使用技巧详解 Ps. 依托于百度开放云,百度语音为合作伙伴提供了业界领先.永久免费的语音技术服务,目前已上线的服务包括语音识别.语义解析.语音合成,后续会继续带来开放资源.多轮对话等技术服务:通过SDK.REST API及离线开发包等多种服务方式,满足不同开发者的开发需求. 目前百度语音提供免费的语音接入,语音合成质量尚可,但还没开放离线TTS. 服务接入流程 具体详情可查看:http://yuyin.ba

【Android语音合成TTS】国内主流引擎对比

PS. TTS即TextToSpeech(从文本到语言),也就是语音合成.TTS把文字智能地转化为自然语音流.TTS技术对文本文件进行实时转换,转换时间之短可以秒计算.在其特有智能语音控制器作用下,文本输出的语音音律流畅,使得听者在听取信息时感觉自然,毫无机器语音输出的冷漠与生涩感. 纵观整个应用市场会发现越来越多的APP含有语音识别语音合成的功能,TTS可以帮助开发者轻松构建各类语音交互应用,帮助各行业伙伴打造语音服务特色产品. 下面就给大家分析一下国内的主流语音引擎提供商,希望能对大家开发和

【Android语音合成TTS】云知声离线TTS使用详解

请尊重他人的劳动成果,转载请注明出处:[Android语音合成TTS]云知声离线TTS使用详解 PS. 云知声是2012年创立的,虽然只有1年多的发展历程,但其语音识别技术核心团队已经从业十余年,积累颇丰,这也是为什么能够短短一年时间能够在语音识别领域内做得风生水起的缘故.微语音插件.搜狗语音助手.乐视超级电视.老罗锤子操作系统.触宝输入法,还有网易+电信推出的的易信,用的是云知声的语音识别.2013年,云知声在资本市场的认可度非常高,极受追捧. 目前云知声提供免费的离线TTS,但API比较少,

大叔也说Xamarin~Android篇~支付宝SDK的集成

首先做为支付宝SDK它提供了多种平台,网页版,wap版,IOS版,android版等等,今天主要说一下在xamarin里使用android平台的sdk的方法,在网上介绍这块的文章不多,大叔本着贡献的精神继续撰写程序人生!希望各位继续支持大叔! 一 首先下面支付宝android的sdk,也就是手机端的sdk,一般也叫快捷支付 https://doc.open.alipay.com/doc2/detail?treeId=54&articleId=103419&docType=1 里面有各种平台

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

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

Android实战--小DEMO(JAVA关键字学习之语音合成TTS的实现)一

接着上一节讨论的问题,本DEMO中会用到TTS语音合成,我们下面介绍一个同样原理的小例子 看一下布局文件很简单: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" androi

Android Studio 下载地址以及Android SDK下载方法

记录一下: Android Studio 下载地址: http://www.android-studio.org/ Android SDK下载方法 : SDK 下载有两种方式,一种是配置代理下载,一种是国内镜像下载. 第一种: 配置代理下载 Google SDK 下载的两个地址是 dl.google.com 和 dl-ssl.google.com 第一步:分别在ping.chinaz.com 网站上ping检测一下可用的dl.google.com 和 dl-ssl.google.com的代理IP

Android模拟器设置网络代理方法

在服务器上启动模拟器的时候加了--http-proxy,但是不起作用.所以搜了下面的方法 四种方法: 一:将网络连接代理设置写入配置数据库 (适合启动模拟器无界面) 1.通过命令行或者通过双击emulatoer可执行文件,打开模拟器 2.在命令行执行adb shell 打开android的控制台 (确保环境变量设置正确,即已经把Android_SDK/tools 添加到了PATH(Linux)/path(Windows)) 3.执行 ls -l /data/data/com.android.pr

百度语音识别开放平台SDK使用方法

百度Android语音识别SDK分在线与离线两种,这篇文章介绍在线SDK的使用方法. 在线SDK是以JAR包和动态链接库形式发布和使用,可以从百度开放云平台网站中下载SDK及使用说明文档. http://developer.baidu.com/wiki/index.php?title=docs/cplat/media/voice 完成语音SDK的集成分以下几步,本文将一步步介绍SDK集成方法. 1.注册开放开放平台 点击管理控制台,选择移动应用管理 选择创建应用,填写应用名称     可以看到右