`

android 中文语音

 
阅读更多


Android 系统自带的TTS (Text To Speak)语音库目前只有English ,German , Italian ,French ,Spanish(英文,德语,意大利语,法语,西班牙语)五个音库.所以中文发音必须要借助其他的软件,或者引擎.近些天研究目前有三个方法可以实现:

1,一种是借助shoushuotts音库引擎和jar文件在自己的项目中调用.具体方法可查看网址:http://dev.10086.cn/cmdn/bbs/thread-58426-1-1.html

(经过测试,中文发音很慢,用些多音字和特殊符号无法识别)

2.是用addr软件,方法同上,要添加两个jar文件.有源代码实例:

(测试发现,其中文发音是老外的调调,并且严重怀疑他的中文也是老外教的)

3 安装讯飞语音插件.需要安装两个文件,讯飞语音TTS.apk 和讯飞语音包.apk,不需要jar文件,直接到系统配置 -> 语音输入与输出 --> 文字转语音设置 -->讯飞语音后边打钩(选择后才能设置其他项) -- > 默认引擎(讯飞语音) -->语言(中文) (用必要是还可以在讯飞语音合成里选择男声和女声)

配置完成后,可直接用系统提供的TextToSpeak的方法直接调用即可.

(测试发现,改发音是中标准的中文发音,据了解,国内语音识别系统做的最好的一家,发音连贯,并且可辨认符号如℃等)

示例代码如下:

    public class NiHaoTTS extends Activity implements OnInitListener {                                                     

                                                                                                                          

private int MY_DATA_CHECK_CODE = 0;                                                                                   

private TextToSpeech tts;                                                                                             

private EditText inputText;                                                                                           

private Button speakButton;                                                                                           

                                                                                                                      

@Override                                                                                                                

public void onCreate(Bundle savedInstanceState) {                                                                        

                                                                                                                          

  super.onCreate(savedInstanceState);                                                                                     

  setContentView(R.layout.xunfei_tts);                                                                                          

                                                                                                                          

  inputText = (EditText) findViewById(R.id.input_text);                                                                   

  speakButton = (Button) findViewById(R.id.speak_button);                                                                 

  speakButton.setOnClickListener(new OnClickListener() {                                                                  

   @Override                                                                                                              

   public void onClick(View v)

   {                                                                                          

       String text = inputText.getText().toString();                                                                      

       if (text!=null && text.length()>0)

       {                                                                               

       Toast.makeText(NiHaoTTS.this, "Saying: " + text, Toast.LENGTH_LONG).show();  

       //开始阅读 text

       tts.speak(text, TextToSpeech.QUEUE_ADD, null);                                                                        

       }                                                                                                                  

      }                                                                                                                      

         });                                                                                                                 

                                                                                                                          

    Intent checkIntent = new Intent();                                                                                      

        checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);                                                   

        startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);                                                            

    }                                                                                                                     

   protected void onActivityResult(int requestCode, int resultCode, Intent data) {                                           

        if (requestCode == MY_DATA_CHECK_CODE)

        {                                                                          

            if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS)

            {                                                

                // success, create the TTS instance                                                                       

            tts = new TextToSpeech(this, this);                                                                       

            }                                                                                                             

            else

            {                                                                                                        

            // missing data, install it                                                                               

            Intent installIntent = new Intent();                                                                      

            installIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);                                     

            startActivity(installIntent);                                                                             

        }                                                                                                             

        }                                                                                                                 

                                                                                                                      

   }                                                                                                                     

                                                                                                                      

@Override                                                                                                             

public void onInit(int status)

{                                                                                      

    if (status == TextToSpeech.SUCCESS)

    {                                                                             

        Toast.makeText(NiHaoTTS.this,                                                                              

                "Text-To-Speech engine is initialized", Toast.LENGTH_LONG).show();                                    

    }                                                                                                                 

    else if (status == TextToSpeech.ERROR)

    {                                                                          

    Toast.makeText(NiHaoTTS.this,                                                                              

            "Error occurred while initializing Text-To-Speech engine", Toast.LENGTH_LONG).show();                 

}                                                                                                                 

    }                                                                                                                     

}    
分享到:
评论

相关推荐

    android中文语音tts

    Android中文语音TTS,全称为Text-to-Speech,是一种技术,能够让设备将文字转化为可听见的语音输出。在Android平台上,TTS系统是为开发者提供的一种服务,它允许应用程序将文字转换成自然语言的语音,使得用户无需...

    基于 TensorFlow Lite 开发的 Android 端中文语音识别 Demo.zip

    在这个"基于 TensorFlow Lite 开发的 Android 端中文语音识别 Demo.zip"中,我们将探讨如何利用 TensorFlow Lite 在移动设备上实现本地化的中文语音识别功能。 首先,让我们了解 TensorFlow Lite。它是 TensorFlow ...

    android实现语音朗读 支持中文朗读 TTS 讯飞语音库

    android下实现对文本的语音朗读,TTS技术,支持中文朗读。Android SDK 4.04下测试通过。 附件包含测试源代码及语音库文件 这是语音合成测试工程,如果需要朗读中文请安装中文引擎。我采用的是讯飞语音库,手机版本...

    android studio tts 离线中文语音播放

    本主题聚焦于如何在Android Studio中实现离线中文语音播放,支持男声和女声,并能调整音量和实现变声效果。离线TTS的优势在于无需网络连接,节省数据流量,同时在没有网络的环境下依然可以正常使用。 首先,我们...

    android Speech Recognition_Demo android中文离线语音识别 Android离线语音识别

    本项目“android Speech Recognition_Demo”专注于提供一个离线的、针对中文的语音识别解决方案,避免了网络连接的限制,提高了识别的即时性和隐私性。 离线语音识别在Android开发中具有以下关键知识点: 1. **...

    android TTS语音引擎包

    对于需要高质量中文语音合成的Android应用,科大讯飞的引擎是理想的选择。 4. **使用方法**:这些语音引擎包以APK的形式提供,可以直接安装在Android设备上。用户可以在设备的设置中找到TTS选项,切换到已安装的...

    Android中语音识别与语音播报功能的实现

    在Android平台上,语音识别与语音播报是两种非常实用的功能,它们极大地增强了用户的交互体验,尤其在移动设备上,用户可以通过语音指令操作应用,或者让应用读出屏幕上的文本信息。以下将详细介绍这两个功能的实现...

    android_tts_离线语音demo包文字转语音

    android_tts_离线语音demo包文字转语音。 不依赖于手机的tts,及时手机没有安装tts,也可以运行。 成功的将文字转成语音,可以切换声音,调整语速。 尚存一个小问题,英文单词不认识了,读成了一个个字母。欢迎高人...

    android 网络语音搜索 source code

    在Android平台上,网络语音搜索是实现用户通过语音与应用程序交互的重要功能。`RecogizerIntent`是Android系统中用于处理语音识别的关键类,它允许开发者集成语音搜索到自己的应用中,使得用户可以通过说话来输入...

    android Speech Recognition_Demo android中文离线语音识别 Android离线语音识别aar反编译源码可编辑版

    本项目聚焦于“android Speech Recognition_Demo”,这是一个专为Android设计的离线中文语音识别示例,它包含了可编辑的源码,使得开发者能够自定义和优化识别功能。 离线语音识别相较于在线语音识别,最大的优势...

    Andriod中文语音导航库及语音导航SVOX语音插件

    本主题聚焦于“Android中文语音导航库及SVOX语音插件”,它旨在为开发者提供一套完整的解决方案,使应用能够流畅地进行中文语音播报,帮助用户在行驶过程中轻松获取导航指引。 首先,我们要理解Android系统中的语音...

    Android中文数字语音

    总的来说,这个"Android中文数字语音"应用涵盖了Android应用开发的多个关键领域,包括但不限于数据处理(数字转换)、文本到语音的转换、音频资源管理、用户界面设计和交互。开发者在实现这个应用的过程中,不仅需要...

    android 文字转语音 tts 实现 支持中文

    本篇将详细讲解如何在Android应用中实现文字转语音功能,特别关注对中文的支持。 首先,Android系统的TTS服务是一个内置的服务框架,它允许应用程序将文本转换为合成语音。要使用这个服务,我们需要在应用中添加...

    Android 仿Siri的中文语音助理源码.zip

    总的来说,这个源码项目提供了实现一个Android中文语音助理的完整框架,涵盖了从语音输入到语音输出,再到实际任务执行的全过程。开发者可以通过研究这个源码,学习如何在Android平台上构建类似功能的应用。

    Android系统Google TTS 语音数据包(支持中文等15种语言)

    语音包里面包含语言如下: E 英文 F 法语 G 德语 I 印尼语 J 日本语 K 韩语 L 泰语 P 葡萄牙语 R 俄语 S 简体中文 T 香港-繁体中文 V 越南语 a 西班牙语-西班牙 t 土耳其语 w 繁体中文-台湾 脚本...

    android语音合成介绍

    ### Android语音合成技术详解 #### 一、引言 随着移动设备功能的不断增强与多样化,Android平台上的语音合成(Text-to-Speech, TTS)技术变得越来越重要。语音合成引擎不仅能够帮助视障用户更好地使用手机,还能应用...

    Android-Android实现收款成功金额的语音播报功能

    在Android应用开发中,实现收款成功金额的语音播报功能是一项实用且重要的功能,它能够为用户提供无障碍的交互体验,尤其适用于商店、餐厅等商业场景。本文将深入探讨如何在Android平台上构建这样的功能。 首先,...

    android tts 中文转语音

    在Android平台上实现中文转语音,通常需要集成第三方的TTS引擎,因为Android自带的TTS引擎可能不支持所有语言,包括中文。 集成手说语音库是实现中文TTS的一种常见方法。手说语音库提供了高质量的中文发音,支持...

Global site tag (gtag.js) - Google Analytics