该功能是基于百度智能云实现的根据文字进行语音播报。

1、首先到百度智能云创建语音应用

https://console.bce.baidu.com/ai/

填写包名创建百度语音应用,获取AppID,API Key,Secret Key

2、导入资源文件。语音jar,assets语音库,jni系统文件

3、创建工具类

4、activity初始化语音引擎

protected String appId = "20729771";protected String appKey = "6SSdraj9RFUKyAmf36DcpYy3";protected String secretKey = "dmqQYTXsPUmWwgSQU06vj2plHKTAdaF3";
protected TtsMode ttsMode = TtsMode.MIX;protected MySyntherizer synthesizer;
SpeechSynthesizerListener listener;
protected String offlineVoice = OfflineResource.VOICE_MALE;

在Application的onCreate方法里面初始化

Map<String, String> params = getParams();
InitConfig initConfig = new InitConfig(appId, appKey, secretKey, ttsMode, params, listener);synthesizer = new MySyntherizer(this,initConfig,null);

开始播报内容

synthesizer.speak(str1);

demo链接:https://download.csdn.net/download/meixi_android/11193641

在线回复bug:QQ1085220040

附:切换声音类型dialog

AlertDialog.Builder builder = new AlertDialog.Builder(SynthActivity.this, android.R.style.Theme_Holo_Light_Dialog);
builder.setTitle("引擎空闲时切换");
final Map<String, String> map = new LinkedHashMap<>(4);
map.put("离线女声", OfflineResource.VOICE_FEMALE);
map.put("离线男声", OfflineResource.VOICE_MALE);
map.put("离线度逍遥", OfflineResource.VOICE_DUXY);
map.put("离线度丫丫", OfflineResource.VOICE_DUYY);
final String[] keysTemp = new String[4];
final String[] keys = map.keySet().toArray(keysTemp);
builder.setItems(keys, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {loadModel(map.get(keys[which]));Log.i("lgq","....."+map.get(keys[which]));}
});
builder.show();

方法二:

说明:只适用安卓6,0以上设备

两个工具方法,即可实现语音播报

public interface TTS {void playText(String playText);void stopSpeak();
}
public class SystemTTS extends UtteranceProgressListener implements TTS, TextToSpeech.OnUtteranceCompletedListener {private Context mContext;private static SystemTTS singleton;private TextToSpeech textToSpeech; // 系统语音播报类private boolean isSuccess = true;public static SystemTTS getInstance(Context context) {if (singleton == null) {synchronized (SystemTTS.class) {if (singleton == null) {singleton = new SystemTTS(context);}}}return singleton;}private SystemTTS(Context context) {this.mContext = context.getApplicationContext();textToSpeech = new TextToSpeech(mContext, new TextToSpeech.OnInitListener() {@Overridepublic void onInit(int i) {//系统语音初始化成功if (i == TextToSpeech.SUCCESS) {int result = textToSpeech.setLanguage(Locale.CHINA);textToSpeech.setPitch(1.0f);// 设置音调,值越大声音越尖(女生),值越小则变成男声,1.0是常规textToSpeech.setSpeechRate(1.0f);textToSpeech.setOnUtteranceProgressListener(SystemTTS.this);textToSpeech.setOnUtteranceCompletedListener(SystemTTS.this);if (result == TextToSpeech.LANG_MISSING_DATA|| result == TextToSpeech.LANG_NOT_SUPPORTED) {//系统不支持中文播报isSuccess = false;}}}});}public void playText(String playText) {if (!isSuccess) {Toast.makeText(mContext, "系统不支持中文播报", Toast.LENGTH_SHORT).show();return;}if (textToSpeech != null) {textToSpeech.speak(playText,TextToSpeech.QUEUE_ADD, null, null);}}public void stopSpeak() {if (textToSpeech != null) {textToSpeech.stop();}}//    public boolean isSpeaking() {
//        if (textToSpeech.isSpeaking()) {
//            return true;
//        }
//        return false;
//    }//播报完成回调@Overridepublic void onUtteranceCompleted(String utteranceId) {}@Overridepublic void onStart(String utteranceId) {}@Overridepublic void onDone(String utteranceId) {}@Overridepublic void onError(String utteranceId) {}
}

调用播报:

SystemTTS systemTTS = SystemTTS.getInstance(MainActivity.this);
systemTTS.playText("支付宝到账一百万");

语音识别 实现

语音识别比较简单,只需要引入百度的代码库即可实现

实现效果

百度语音识别demo:https://download.csdn.net/download/meixi_android/15512732

在线语音播报bug交流:扣1085220040

Android 语音播报,语音识别demo相关推荐

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

    Android语音播报.后台播报.语音识别 本文介绍使用讯飞语音实现语音播报.语音识别功能. 讯飞开放平台:http://www.xfyun.cn/index.php/default/index 程序 ...

  2. Android 语音播报之项目实战

    TextToSpeech项目应用 文字转语音 官网简介 项目前景 项目实战 真机调试 结尾 文字转语音 从文本合成语音以立即播放或创建声音文件.即TextToSpeech(以下简称TTS)       ...

  3. java语音播报源代码_详解Android 语音播报实现方案(无SDK)

    本文介绍了详解Android 语音播报实现方案(无SDK),分享给大家,具体如下: 功能描述 类似支付宝收款时候的语音播报功能:当别人扫描你的收款码,你收到钱之后,就会听到"支付宝到账12. ...

  4. 自定义封装android语音播报库

    自定义封装android语音播报库 在开发的时候,需要用到语音播报和音乐提醒,然后就封装了一套库,只需要调用一个方法,传入需要的文字或者音乐,方便快捷 首先在project视图下,将aar文件添加到l ...

  5. android语音播报

    百度TTS引擎离线语音合成+语音播报已个人测试,可用声音满意,代码只是一个模块参考还需要一些文件下面连接方可进入下载demo,虽花钱但是负责你到最后实现 mqtts长连接   双进程保活   tts中 ...

  6. android 语音自动播报,Android 语音播报实现

    文章主要讲的是以前做项目时实现的来短信或来电话时语音播报的功能实现,记录下来做个总结. 1.实现语音播报的关键 -- 语音播报工具类(TtsUtil.java) 为了方便 文章主要讲的是以前做项目时实 ...

  7. Android 语音播报 , 百度在线语音合成封装;

    Android自带的语音播报不支持中文: 科大讯飞开始收费了: 百度离线语音合成也收费,但是! 在线语音合成不收费,需要在百度开放平台申请AppId: 文档:https://cloud.baidu.c ...

  8. 语音播报 android,Android 语音播报 文字转语音

    最近收到了结合推送 到的内容 语音播报功能实现 就想到sdk内置 android.speech 已经内置了语音播放功能 开始放代码 //创建自带语音对象 private TextToSpeech te ...

  9. C# 实现语音播报语音识别

    代码如下: 语音播报 添加引用:System.Speech.Synthesis或Microsoft.Speech.Synthesis public static void Speaking(strin ...

最新文章

  1. 单链表-删除单链表L中第一个值为x的结点(双指针法)
  2. Deep Learning(深度学习)学习笔记整理系列之(五)
  3. 基于KNN的相关内容推荐
  4. hdu2722 简单最短路,处理好输入就行
  5. 成功解决numpy.linalg.LinAlgError: singular matrix
  6. day12_oracle hint——SQL优化过程中常见Oracle中HINT的30个用法
  7. android布局属性
  8. SAP WebIDE一个和Destination相关的问题 - OData下拉菜单里的Destination从哪里来的
  9. 语言兔子繁衍问题讲解_颍湄脞録兔子不搁那窝里
  10. Lombok注解使用详解
  11. HTML5+CSS+JQuery 实现简单的进度条功能
  12. 分享几个java小程序代码
  13. 使用USBWriter等工具做U盘启动盘后容量变小的解决办法
  14. Word背景变成豆绿色怎么恢复?
  15. ORVIBO 精灵款升级分析
  16. 数字信号处理学习笔记[3] 滤波与褶积,Z变换
  17. java故事之致敬坚持梦想的人
  18. 什么牌子的蓝牙耳机性价比高质量好?高性价比降噪蓝牙耳机推荐
  19. 【Tensorflow教程笔记】TensorFlow Datasets 数据集载入
  20. HDOJ题目分类大全

热门文章

  1. [vue] vue性能的优化的方法有哪些?
  2. 工作224:当前函数造成
  3. 工作99:任务加1逻辑
  4. “约见”面试官系列之常见面试题之第五十九篇之js中push(),pop(),unshift(),shift()的用法小结 (建议收藏)
  5. 前端学习(1895)vue之电商管理系统电商系统之组件的分页显示
  6. 前端学习(219):css伪类选择器
  7. 第十三题:子类要调用继承自父类的方法,必须使用super关键字。
  8. Mac-安装Homebrew报错error: could not lock config file .git/config:
  9. 基于display:table的CSS布局
  10. 使用 function 构造函数创建组件和使用 class 关键字创建组件