簡體   English   中英

TextToSpeech setLanguage無法正常工作?

[英]TextToSpeech setLanguage not working?

我正在設置我的TextToSpeech使用特定語言(英語 - 英國),使用語言環境“en_GB”。 但它總是使用我的設備默認語言。 有沒有辦法以編程方式設置它? 我已經下載了該語言所需的文件,當我將TTS的默認語言更改為“英語 - 英國”時,它可以正常工作,但是當默認語言不同時,程序化方法不起作用。 我已盡力瀏覽網頁,但無法解決此問題。

    String ttsEngine = "com.google.android.tts";
    txt2Speech = new TextToSpeech(this, this, ttsEngine);
    //Locale ttsLocale = new Locale("eng", "GBR");
    txt2Speech.setLanguage(new Locale("en_GB"));

嘗試了幾種方法,但都沒有。 我不能以編程方式設置我的TTS語言嗎?

謝謝

編輯:回應'A Honey Bustard'

其他代碼:

public class MainActivity extends AppCompatActivity implements TextToSpeech.OnInitListener

我的onInit()

public void onInit(int status) {
    // TODO Auto-generated method stub

}

我的TextToSpeech初始化后,我也在我的onCreate()調用.setLanguage() 那是對的嗎? 我也只打電話一次。 每次都不需要打電話嗎? 我也正在測試GS7

嘗試使用Locale中的第二個構造函數,它接受兩個字符串,如下所示:

    txt2Speech.setLanguage(new Locale("en", "GB"));

編輯:

是的,通常可以在onCreate中實例化它,它通常只需要並且應該執行一次。

我所能做的只是向您顯示我的工作代碼,我在onCreate()實例化后設置默認語言:

    textToSpeech = new TextToSpeech(getApplicationContext(), this);

    textToSpeech.setLanguage(Locale.getDefault());

在我的應用程序中有一些按鈕,您可以在其中更改語言,觸發此代碼(案例英國英語):

  textToSpeech.setLanguage(new Locale("en", "GB"));

也許它不能以某種方式提供,如果語言和國家/地區可用,您可以驗證一些檢查。 你可能會在那里找到你的錯誤。

 if (textToSpeech.isLanguageAvailable(new Locale("en", "GB")) == TextToSpeech.LANG_COUNTRY_AVAILABLE
   && textToSpeech.isLanguageAvailable(new Locale("en", "GB")) == TextToSpeech.LANG_AVAILABLE) 

應該回歸真實。

一旦Text to Speech Engine正確初始化,您需要設置語言。

public void onInit(int status) {

    switch (status) {

        case SUCCESS:
        // Set the language here
        break;
        case ERROR:
         // Something went wrong. You can't set the language
        break;
    }
}

應該這樣做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM