首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android-希伯来语的TextToSpeech

android-希伯来语的TextToSpeech
EN

Stack Overflow用户
提问于 2013-05-09 21:41:44
回答 2查看 5.2K关注 0票数 3

我试着这样使用它

代码语言:javascript
复制
int result2 = tts_hebrew.setLanguage(Locale.iw);

但是iw没有被识别为Locale.iw。

http://developer.android.com/reference/java/util/Locale.html中:

“请注意,Java使用了几个不推荐使用的两个字母的代码。希伯来语("he")语言代码重写为"iw",印尼语("id")重写为"in",意第绪语("yi")重写为"ji”。即使您构造自己的区域设置对象,这种重写也会发生,而不仅仅是针对由各种查找方法返回的实例。

如何在希伯来语中使用textToSpecch?

EDID2:我现在使用新的语言环境(“iw”)。它编译但没有声音..(不是英语,也不是希伯来语)。只要用英语就行了

代码语言:javascript
复制
package com.example.freeenglish;

import java.util.Locale;
import java.util.Timer;

import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.speech.tts.TextToSpeech;
import android.util.Log;
import android.view.Menu;
import android.widget.Button;
import android.widget.EditText;

import com.example.freeenglish.Const;



public class WordLearn extends Activity implements TextToSpeech.OnInitListener  {
//iw -hebrow

    //for speaking
    private TextToSpeech tts_english;
    private TextToSpeech tts_hebrew;
    private Button btnSpeak;
    private EditText txtText;


    int random_word_index;

    int index = 0;
    Button up_english;
    Button down_hebrew;
    Handler hand = new Handler();
    Handler hand1 = new Handler();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_word_learn);

        up_english = (Button) findViewById(R.id.up);
        down_hebrew = (Button) findViewById(R.id.down);
        hand1.postDelayed(run1, 2000);      

        /////////////////////////////////for speking:
        tts_english = new TextToSpeech(this, this);
        tts_english.setPitch((float) 0.6);//speed. defulat=1, lower<1
        tts_english.setSpeechRate((float) 0.5); //speed. defulat=1, lower<1

        tts_hebrew = new TextToSpeech(this, this);
        tts_hebrew.setPitch((float) 0.6);//speed. defulat=1, lower<1
        tts_hebrew.setSpeechRate((float) 0.5); //speed. defulat=1, lower<1
        ///////////////////////////////////
}



Runnable run1 = new Runnable() {
    @Override
    public void run() {
         random_word_index=(int) (Math.random()*Const.NUMBER_OF_WORDS); 
        up_english.setText(Const.words_list_english[random_word_index]);
        down_hebrew.setText(Const.words_list_hebrew[random_word_index]);

        speakOut_english();
        speakOut_hebrew();

        hand1.postDelayed(run1, 4000);
    }
};

@Override
public void onDestroy() {
    // Don't forget to shutdown tts!
    if (tts_english != null) {
        tts_english.stop();
        tts_english.shutdown();
    }

    if (tts_hebrew != null) {
        tts_hebrew.stop();
        tts_hebrew.shutdown();
    }
    super.onDestroy();
}

@Override
public void onInit(int status) {

    if (status == TextToSpeech.SUCCESS) {


        int result1 = tts_english.setLanguage(Locale.US);
        int result2 = tts_hebrew.setLanguage(new Locale("iw"));

        if ((result1 == TextToSpeech.LANG_MISSING_DATA || result1 == TextToSpeech.LANG_NOT_SUPPORTED) &&
            (result2 == TextToSpeech.LANG_MISSING_DATA || result2 == TextToSpeech.LANG_NOT_SUPPORTED)   ) {
            Log.e("TTS", "This Language is not supported");
        } else {
            up_english.setEnabled(true);
            down_hebrew.setEnabled(true);
            speakOut_english();
            speakOut_hebrew();
        }

    } else {
        Log.e("TTS", "Initilization Failed!");
    }

}

private void speakOut_english() {

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

    tts_english.speak(text, TextToSpeech.QUEUE_FLUSH, null);
}

private void speakOut_hebrew() {

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

    tts_hebrew.speak(text, TextToSpeech.QUEUE_FLUSH, null);
}
}
EN

回答 2

Stack Overflow用户

发布于 2013-05-09 21:45:15

你试过new Locale("iw")吗?

票数 1
EN

Stack Overflow用户

发布于 2016-09-16 21:00:18

我认为希伯来语还不适用于希伯来语。我也想把它用在我的网站上,但用的是Google TTS。

我认为Android和Google Translater使用的是相同的TTS系统。

在谷歌翻译中,你也听不到希伯来语的表达。我已经在浏览器和Google Translater中尝试过了。

示例:https://translate.google.com/#en/iw/Hello

Playstore中有两个希伯来语TTS应用程序:

Aharon Hebrew TTS Ron Hebrew TTS

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16463226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档