zoukankan      html  css  js  c++  java
  • 终于研究出在系统上实现文字转语音功能,可以实现本公司的语音导航功能了

    以下是语音功能主要代码:

    首先,当然是要在手机上安装tts语音引擎包,然后安装tts语音中文包,在设置语音里找到引擎设置、语音设置:

    讯飞公司为什么在以上界面设了我的一朋友名字“晓燕”上去呀,O(∩_∩)O哈哈~

    讯飞公司为什么在以上界面设了我的一朋友名字“晓燕”上去呀,O(∩_∩)O哈哈~

    设好之后:

    权限:

    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
        <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
        <uses-permission android:name="android.permission.INTERNET"></uses-permission>
        <uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
        <uses-permission android:name="android.permission.SEND_SMS"></uses-permission>
        <uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
        <uses-permission android:name="android.permission.READ_PHONE_STATE" />
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    主要代码:.java :

    package com.xmb.test1;
    
    import java.util.Locale;
    
    import android.app.Activity;
    import android.content.Context;
    import android.content.Intent;
    import android.os.Bundle;
    import android.speech.tts.TextToSpeech;
    import android.speech.tts.TextToSpeech.OnInitListener;
    import android.telephony.TelephonyManager;
    import android.util.Log;
    
    /** activity **/
    public class MainActivity extends Activity implements OnInitListener{
        TextToSpeech tts;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            tts=new TextToSpeech(this,this);
            //tts.speak("i like English", TextToSpeech.QUEUE_FLUSH, null); 
            Intent intent =new Intent();
            intent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
            startActivityForResult(intent,0);
            
        }
    
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            // TODO Auto-generated method stub
            if(requestCode==0){
            switch(resultCode){
            case TextToSpeech.Engine.CHECK_VOICE_DATA_PASS:
                Log.i("out", "ok");
                break;
            case TextToSpeech.Engine.CHECK_VOICE_DATA_BAD_DATA:
                Log.i("out", "bad");
                break;
            case TextToSpeech.Engine.CHECK_VOICE_DATA_MISSING_DATA:
                Log.i("out", "miss");
                break;
            case TextToSpeech.Engine.CHECK_VOICE_DATA_FAIL:
                Log.i("out", "fail");
                break;
            case TextToSpeech.Engine.CHECK_VOICE_DATA_MISSING_VOLUME:
                Log.i("out", "missing");
                break;
            }
            }
            super.onActivityResult(requestCode, resultCode, data);
        }
    
        @Override
        public void onInit(int status) {
            // TODO Auto-generated method stub
            int result = 0;
            if(status==TextToSpeech.SUCCESS){
                result = tts.setLanguage(Locale.UK);
                Log.i("out","result support ok!");
            }
            if(result==TextToSpeech.LANG_MISSING_DATA||result==TextToSpeech.LANG_NOT_SUPPORTED){
                Log.i("out","result no support!");
            }
            tts.speak("i like English and i like Android", TextToSpeech.QUEUE_ADD, null);
        }
        
    }

    初始化TextToSpeech时候,就会调用onInit()方法

  • 相关阅读:
    HTTP Basic 验证客户端 C#实现笔记
    泗洪高薪行业
    C#中Math的使用总结
    Android音频底层调试-基于tinyalsa
    我看项目管理第一回:认识利益相关方,提高思想意识
    【剑指Offer学习】【面试题19 :二叉树的镜像】
    算法
    zTree实现地市县三级级联DAO接口实现
    Unix/Linux环境C编程新手教程(12) openSUSECCPP以及Linux内核驱动开发环境搭建
    正尝试在 OS 载入程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内执行托管代码,这样做会导致应用程序挂起。
  • 原文地址:https://www.cnblogs.com/xmb7/p/3044892.html
Copyright © 2011-2022 走看看