在 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
};
我正在使用 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
};