Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android-TextToSpeech希伯来语_Android_Text To Speech - Fatal编程技术网

android-TextToSpeech希伯来语

android-TextToSpeech希伯来语,android,text-to-speech,Android,Text To Speech,我试着像这样使用它 int result2 = tts_hebrew.setLanguage(Locale.iw); 但iw未被识别为Locale.iw 在: 请注意,Java使用了几种不推荐使用的两个字母的代码。希伯来语(“he”)语言代码被重写为“iw”,印尼语(“id”)被重写为“in”,意第绪语(“yi”)被重写为“ji”。即使您构建了自己的Locale对象,这种重写也会发生,而不仅仅是针对各种查找方法返回的实例 我如何用希伯来语使用textToSpecch EDID2:我现在使用新的

我试着像这样使用它

int result2 = tts_hebrew.setLanguage(Locale.iw);
但iw未被识别为Locale.iw

在:

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

我如何用希伯来语使用textToSpecch

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

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);
}
}
package.com.example.freeenglish;
导入java.util.Locale;
导入java.util.Timer;
导入android.os.Bundle;
导入android.os.Handler;
导入android.app.Activity;
导入android.speech.tts.TextToSpeech;
导入android.util.Log;
导入android.view.Menu;
导入android.widget.Button;
导入android.widget.EditText;
导入com.example.freeenglish.Const;
公共类WordLearn扩展活动实现TextToSpeech.OnInitListener{
//伊沃-希伯罗
//说
私密文本,用于讲tts_英语;
私人短信,说希伯来语;
专用按钮btnSpeak;
私有EditText-txtText;
int随机词索引;
int指数=0;
扣上英语;
按下按钮(希伯来语);;
Handler hand=新的Handler();
Handler hand1=新的Handler();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u word\u learn);
up_english=(按钮)findviewbyd(R.id.up);
down_hebrew=(按钮)findViewById(R.id.down);
hand1.postdayed(run12000);
/////////////////////////////////关于喷溅:
tts_english=新文本到语音(这个,这个);

tts_english.setPitch((float)0.6);//speed.defulat=1,lower你试过新语言环境(“iw”)

我想希伯来语还不适用于希伯来语。 我想在我的网站上也使用它,但是使用谷歌TTS

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

在谷歌翻译你也听不到希伯来语表达。 我已经在浏览器和谷歌翻译应用程序中尝试过了

例如:

Playstore中提供了两个希伯来语TTS应用程序:


你的TTS引擎支持希伯来语吗?我知道内置引擎(谷歌TTS、Pico TTS、三星TTS)不支持。我怎么知道?如果有人的android不支持它。应用程序将崩溃?使用
isLanguageAvailable()
检查语言是否受支持。崩溃的logcat输出是什么?我修复了我的错误。现在它运行,但没有语音…(没有英语和希伯来语)。只需英语即可。很可能,希伯来语不受支持。转到设备设置>语言和输入>文本到语音输出:按引擎>语言的“设置”图标,查看是否列出了希伯来语。你知道这些应用程序使用什么来做这件事吗?是的,我尝试过。不起作用。还尝试了使用区域设置。getDefault()。相同。不支持获取TextToSpeech.LANG。