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

本文介绍使用讯飞语音实现语音播报、语音识别功能。

程序效果图:

简单的XML布局

xml version="1.0" encoding="utf-8"?>

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

android:id="@+id/et"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:editable="true" />

android:id="@+id/bt_recognize"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:gravity="center"

android:text="识别" />

android:id="@+id/bt_speek"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:gravity="center"

android:text="Speek" />

android:id="@+id/bt_speek_bg"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:gravity="center"

android:text="后台Speek" />

android:textColor="@android:color/white"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="语音控制开关" />

android:id="@+id/tb"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

识别

case R.id.bt_recognize:

// 这是语言识别部分,最重要的实例化一个

// RecognizerDialog并把你在官方站点申请的appid填入进去,非法id不能进行识别

RecognizerDialog isrDialog = new RecognizerDialog(Voice1Activity.this, APPID);

/*

* 设置引擎眼下支持五种 ”sms”:普通文本转写 “poi”:地名搜索 ”vsearch”:热词搜索

* ”video”:视频音乐搜索 ”asr”:命令词识别

*/

isrDialog.setEngine("sms", null, null);

isrDialog.setListener(recoListener);

isrDialog.show();

break;

// 语言识别监听器,有两个方法

RecognizerDialogListener recoListener = new RecognizerDialogListener() {

@Override

public void onResults(ArrayList results,

boolean isLast) {

// 新添加了一个ToggleButton tb。首先检查tb是否被按下,假设被按下才进行语言控制,没被按下就进行文字识别

if (tb.isChecked()) {

// doVoice方法就是进行识别

doVoice(results);

} else {

// server识别完毕后会返回集合。我们这里就仅仅得到最匹配的那一项

text += results.get(0).text;

System.out.println(text);

}

}

// 首先迭代结果,然后获取每一个结果,并进行对照。假设包括有特定字符串,那么就运行对应Intent跳转。

// 注意 凡是Intent能办到的(发邮件,跳到已安装应用,拨号。发短信。发彩信,浏览网页。播放多媒体),它就都能办到。

private void doVoice(ArrayList results) {

Intent i = new Intent();

for (RecognizerResult result : results) {

if (result.text.contains("天气")) {

// 天气界面的跳转

i.setClass(Voice1Activity.this, Weather.class);

startActivity(i);

} else if (result.text.contains("新闻")) {

// 新闻界面的跳转

i.setClass(Voice1Activity.this, News.class);

startActivity(i);

} else if (result.text.contains("短信")) {

// 短信界面的跳转

i.setAction(Intent.ACTION_VIEW);

i.setType("vnd.android-dir/mms-sms");

startActivity(i);

} else {

// 假设没有对应指令就用Toast提示用户

Toast.makeText(Voice1Activity.this, "无法识别",Toast.LENGTH_SHORT).show();

}

}

}

@Override

public void onEnd(SpeechError error) {

if (error == null) {

// 完毕后就把结果显示在EditText上

et.setText(text);

}

}

};

Speek

case R.id.bt_speek:

// 这是语言合成部分 相同须要实例化一个SynthesizerDialog 。并输入appid

SynthesizerDialog syn = new SynthesizerDialog(Voice1Activity.this, APPID);

syn.setListener(new SynthesizerDialogListener() {

@Override

public void onEnd(SpeechError arg0) {

}

});

// 依据EditText里的内容实现语音合成

syn.setText(et.getText().toString(), null);

syn.show();

break;

后台Speek

case R.id.bt_speek_bg:

//这是后台朗读,实例化一个SynthesizerPlayer

SynthesizerPlayer player = SynthesizerPlayer.createSynthesizerPlayer(Voice1Activity.this, APPID);

//设置语音朗读者。能够依据须要设置男女朗读,详细请看api文档和官方论坛

player.setVoiceName("vivixiaoyan");//在此设置语音播报的人选比如:vivixiaoyan、vivixiaomei、vivixiaoqi

player.playText(et.getText().toString(), "ent=vivi21,bft=5",null);

break;

转载请注明.

python androidhelper 语音识字_Android语音播报、后台播报、语音识别相关推荐

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

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

  2. python简单发音-Python如何实现文本转语音

    准备 我测试使用的Python版本为2.7.10,如果你的版本是Python3.5的话,这里就不太适合了. 使用Speech API 原理 我们的想法是借助微软的语音接口,所以我们肯定是要进行调用 相 ...

  3. python在线怎么发音-Python如何实现文本转语音

    准备 我测试使用的Python版本为2.7.10,如果你的版本是Python3.5的话,这里就不太适合了. 使用Speech API 原理 我们的想法是借助微软的语音接口,所以我们肯定是要进行调用 相 ...

  4. 用python实现语音的传输功能_用Python打造一款智能语音聊天小软件!

    最近小编与中科院的同学吃饭的时候,偶然讲起来他最近的一个项目就是利用语音识别的技术和聊天机器人来实现人机交互,简而言之就是我们说话,程序识别出来我们讲的是什么,然后通过聊天机器人跟我们实现交流.我感到 ...

  5. python语音在线编辑-Python如何实现文本转语音

    准备 我测试使用的Python版本为2.7.10,如果你的版本是Python3.5的话,这里就不太适合了. 使用Speech API 原理 我们的想法是借助微软的语音接口,所以我们肯定是要进行调用 相 ...

  6. python 文字语音朗读-python 利用pyttsx3文字转语音过程详解

    这篇文章主要介绍了python 利用pyttsx3文字转语音过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 # -*- coding: ut ...

  7. python电脑发音-Python如何实现文本转语音

    准备 我测试使用的Python版本为2.7.10,如果你的版本是Python3.5的话,这里就不太适合了. 使用Speech API 原理 我们的想法是借助微软的语音接口,所以我们肯定是要进行调用 相 ...

  8. python 利用pyttsx3文字转语音 适用于macOS windows树莓派

    2019-04-04 by 崔斐然 python 利用pyttsx3文字转语音 更新于2019-05-08: 树莓派安装pyodbc失败参考这里: 安装 unixodbc-dev, sudo apt ...

  9. python语音属于什么语音_python语音识别

    python语音识别 发布时间:2018-05-27 20:57:23编辑:admin阅读(5589) 语音识别技术,也被称为自动语音识别,目标是以电脑自动将人类的语音内容转换为相应的文字.应用包括语 ...

最新文章

  1. SLF4J 的几种实际应用模式--之二:SLF4J+Logback
  2. python入门:正则表达式,面向对象编程,零基础视频教程分享
  3. *HDU 2108 计算几何
  4. 《C语言及程序设计》实践參考——分数的累加
  5. 华为oj平台的新网址
  6. [Golang] 从零開始写Socket Server(3): 对长、短连接的处理策略(模拟心跳)
  7. Microsoft Office相关开发组件
  8. Linux / openwrt / 安装 Web GUI 和 ftp server
  9. 移动app部分机型无法唤起h5支付宝支付_谜之wxs,uni-app如何用它大幅提升性能
  10. gcc 4.4.2 安装
  11. 一文详解 | 开放搜索兼容Elasticsearch做召回引擎
  12. React Native Styling:样式化的组件,Flexbox布局等
  13. 达摩院 2021 十大科技趋势:云原生重塑IT技术体系
  14. Codeforces Round #222 (Div. 2): C. Maze(BFS)
  15. 在Ubuntu10.10下升级内核到2.6.36使用systemtap
  16. 【交通标志识别】基于matlab GUI BP神经网络交通标志识别【含Matlab源码 718期】
  17. 深度学习面试问题总结
  18. AppThinning之AppSlicing
  19. 给女友定时发送睡前小故事
  20. MOOS程序解析记录(6)pLogger

热门文章

  1. AIWalker是个什么样的号?为什么要推荐呢?聚焦low-level,关注AI最前沿
  2. CentOS7图形界面与命令行界面切换
  3. zabbix 系统搭建(LAMP环境)+keepalived LVS配置
  4. 手工接口测试考虑的点
  5. Dos攻击工具(ZAmbIE)
  6. python在windows下import其他模块的注意事项
  7. Linux之OpenSSL
  8. ipv6的rip配置
  9. css海浪动画代码,不行一行代码,纯css实现海浪动态效果!
  10. 【python教程入门学习】Python函数定义及传参方式详解(4种)