zoukankan      html  css  js  c++  java
  • 安卓TTS学习

    公司要上终端指令播报系统,我这边基于安卓手机进行TTS(文字转语音)开发,下面是一段TTS的例子

    如果需要播报的语音速度可以调节,在文字上加,或者其他符号即可,底层还可以用其他大厂的语言包(讯飞,百度,按需使用即可)

    package com.lizhanqi.www.androidtexttospeech;
    import android.os.Bundle;
    import android.speech.tts.TextToSpeech;
    import android.support.v7.app.AppCompatActivity;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    import java.util.Locale;
    public class MainActivity extends AppCompatActivity implements View.OnClickListener, TextToSpeech.OnInitListener {
    private Button speechBtn; // 按钮控制开始朗读
    private EditText speechTxt; // 需要朗读的内容
    private TextToSpeech textToSpeech; // TTS对象
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    speechBtn = (Button) findViewById(R.id.btn_read);
    speechBtn.setOnClickListener(this);
    speechTxt = (EditText) findViewById(R.id.editText);
    textToSpeech = new TextToSpeech(this, this); // 参数Context,TextToSpeech.OnInitListener
    }
    /**
    * 用来初始化TextToSpeech引擎
    * status:SUCCESS或ERROR这2个值
    * setLanguage设置语言,帮助文档里面写了有22种
    * TextToSpeech.LANG_MISSING_DATA:表示语言的数据丢失。
    * TextToSpeech.LANG_NOT_SUPPORTED:不支持
    */
    @Override
    public void onInit(int status) {
    if (status == TextToSpeech.SUCCESS) {
    int result = textToSpeech.setLanguage(Locale.CHINA);
    if (result == TextToSpeech.LANG_MISSING_DATA
    || result == TextToSpeech.LANG_NOT_SUPPORTED) {
    Toast.makeText(this, "数据丢失或不支持", Toast.LENGTH_SHORT).show();
    }
    }
    }
    @Override
    public void onClick(View v) {
    if (textToSpeech != null && !textToSpeech.isSpeaking()) {
    textToSpeech.setPitch(0.0f);// 设置音调,值越大声音越尖(女生),值越小则变成男声,1.0是常规
    textToSpeech.speak(speechTxt.getText().toString(),
    TextToSpeech.QUEUE_FLUSH, null);
    }
    }
    @Override
    protected void onStop() {
    super.onStop();
    textToSpeech.stop(); // 不管是否正在朗读TTS都被打断
    textToSpeech.shutdown(); // 关闭,释放资源
    }
    }

  • 相关阅读:
    667. Beautiful Arrangement II
    695. Max Area of Island
    485. Max Consecutive Ones
    coedforces #481Div(3)(ABCDEFG)
    躲藏
    车辆问题(贪心)
    最小化代价(优先队列)
    PUBG
    hdu 2647 Reward(拓扑排序+优先队列)
    HDU 3342 Legal or Not(判断环)
  • 原文地址:https://www.cnblogs.com/mlwork/p/11757112.html
Copyright © 2011-2022 走看看