android 语音自动播报,Android语音播报的两种简单实现

本文介绍了Android系统自带的语音播报及其局限性,主要针对Android 6.0以下版本不支持中文的问题。同时,文章详细阐述了如何使用讯飞语音播报进行中文播报的封装和实现,包括接入步骤、权限申请、初始化和调用示例,提供了两种不同的语音播报解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

a、两种方案

1、Android自带的语音播报(老版本手机Android6.0以下,不支持中文)

2、讯飞语音播报封装(直接用)

b、具体实现

一、Android自带的语音播报

查看手机是否支持中文语音播报,在测试的设备中打开‘设置’ -->找到 '语言和输入法'-->查看语音选项,是否支持中文,默认仅支持英文。

public class AndroidTTSActivity extends AppCompatActivity implements View.OnClickListener {

private TextToSpeech textToSpeech = null;//创建自带语音对象

@Override

protected void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.android_tts_layout);

findViewById(R.id.btn0).setOnClickListener(this);

initTTS();

}

private void initTTS() {

//实例化自带语音对象

textToSpeech = new TextToSpeech(this, new TextToSpeech.OnInitListener() {

@Override

public void onInit(int status) {

if (status == textToSpeech.SUCCESS) {

// Toast.makeText(MainActivity.this,"成功输出语音",

// Toast.LENGTH_SHORT).show();

// Locale loc1=new Locale("us");

// Locale loc2=new Locale("china");

textToSpeech.setPitch(1.0f);//方法用来控制音调

textToSpeech.setSpeechRate(1.0f);//用来控制语速

//判断是否支持下面两种语言

int result1 = textToSpeech.setLanguage(Locale.US);

int result2 = textToSpeech.setLanguage(Locale.

SIMPLIFIED_CHINESE);

boolean a = (result1 == TextToSpeech.LANG_MISSING_DATA || result1 == TextToSpeech.LANG_NOT_SUPPORTED);

boolean b = (result2 == TextToSpeech.LANG_MISSING_DATA || result2 == TextToSpeech.LANG_NOT_SUPPORTED);

Log.i("zhh_tts", "US支持否?--》" + a +

"\nzh-CN支持否》--》" + b);

} else {

Toast.makeText(AndroidTTSActivity.this, "数据丢失或不支持", Toast.LENGTH_SHORT).show();

}

}

});

}

@Override

public void onClick(View v) {

if (v.getId() == R.id.btn0) {

startAuto("big sea");

}

}

private void startAuto(String data) {

// 设置音调,值越大声音越尖(女生),值越小则变成男声,1.0是常规

textToSpeech.setPitch(1.0f);

// 设置语速

textToSpeech.setSpeechRate

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值