2017-10-05 47 views
0

我爲Android編寫與Xamarin的應用程序,我需要實現在波蘭語言的文本到語音轉換。波蘭文字轉語音在Xamarin - Android電子

我的第一步當然是谷歌它,我發現文字到語音已經在Xamarin(link to developer.xamarin.com)中實現。

可惜的是,沒有在波蘭(有改變語言的一種方式,但我無法將其更改爲波蘭)。有沒有辦法做到這一點?

我找到了一個不錯的網站,文本到語音的許多語言和免費的非商業的API:https://responsivevoice.org/api/

但是,它工作在JS,我不知道的方式來實現在JS Xamarin,Android應用程序。有沒有辦法做到這一點?

還有一些其他的自由文本到語音的API,但他們似乎並不聲音很大,只是3/10或東西,但我的工作是工程師的項目,所以我不慣於使用此類軟弱的東西。

回答

0

Android支持波蘭和幾十個其他語言,你可以這樣做的(TextToSpeech.IOnInitListenerOnInit方法,審查所有可用語言,並設置一個你想要的:

public void OnInit([GeneratedEnum] OperationResult status) 
{ 
    if (status.Equals(OperationResult.Success)) 
    { 
     foreach (var locale in speaker.AvailableLanguages) 
     { 
      Log.Debug(TAG, locale.Language); // review all the languages available 
      if (locale.Language == "pl") 
       speaker.SetLanguage(locale); 
     } 
     speaker.Speak("jak się masz?", QueueMode.Flush, null, null); 
    } 
    else 
     Log.Error(TAG, status.ToString()); 
} 

iOS版也支持幾十種語言,包括波蘭語(pl-PL)。您可以通過AVSpeechSynthesisVoice.GetSpeechVoices()審查所有支持語言,並指定經AVSpeechSynthesisVoice.FromLanguage一到AVSpeechUtterance.Voice屬性:

foreach (var voice in AVSpeechSynthesisVoice.GetSpeechVoices()) 
{ 
    Console.WriteLine(voice.Language); // review all the languages available 
} 
var speechSynthesizer = new AVSpeechSynthesizer(); 
var speechUtterance = new AVSpeechUtterance("jak się masz?") 
{ 
    Voice = AVSpeechSynthesisVoice.FromLanguage("pl-PL"), 
    Volume = 1.0f, 
    PitchMultiplier = 1.0f 
}; 
+0

嗨!謝謝你的支持。我實施了它,但它仍然不會講光潔。我跟蹤在TTS調試avaliabvle語言中,列表: \t \t語言\t 「恩」 \t \t語言\t 「德」 \t \t語言\t 「FR」 \t \t語言\t 「ES」 \t \t語言\t 「德」 \t \t語言\t 「它」 \t \t語言\t 「它」 \t \t語言\t 「恩」 \t \t語言\t 「ES」 \t \t語言\t 「FR」。那麼什麼是拋光缺失的原因嗎?它與事實有關,我的VS是英文的還是什麼? – snilmerg

+0

@snilmerg不會有什麼原因與Visual Studio,這將是實際的設備/手機。 – SushiHangover

+0

我正在使用適用於Android的Visual Studio Emulator,因爲它比VS內建的響應更具響應能力。我改變了語言的設備打磨,TTS之前,工作語言爲英語,現在它不是在所有 – snilmerg