在 Xamarin 中波兰语 TextToSpeech - Android

Polish TextToSpeech in Xamarin - Android

我正在使用 Xamarin 为 Android 编写应用程序,我需要用波兰语实现文本到语音转换。

当然,我的第一步是 google 它,我发现 Xamarin 中已经实现了文本转语音 (link to developer.xamarin.com)。

不幸的是,不是波兰语(有一种方法可以更改语言,但我无法将其更改为波兰语)。有办法吗?

我找到了一个不错的网站,提供多种语言的文字转语音和免费的非商业服务 api:https://responsivevoice.org/api/

但是,它在 JS 中工作,我不知道在 Xamarin 中实现 JS 的方法,Android 应用程序。有办法吗?

还有一些其他的免费的文字转语音API,但是听起来不太好,只有3/10左右,但是我的工作是工程项目,所以我不会用这么弱的东西。

Android 支持波兰语和其他几十种语言,您可以在 (TextToSpeech.IOnInitListener) OnInit 方法中执行此操作以查看所有可用语言并设置您喜欢的语言想要:

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
};