jAdapterForNativeTTS
1.0.0
這是一個帶有Java API的簡單Java庫,可讓您將本機文本用於操作系統提供的語音功能。支持Microsoft Windows,GNU/Linux和MacOS。
在您的Java代碼中,只需獲得SecementEngine對象(實際上您不必關心所使用的操作系統),直接或通過提供語音偏好來設置您選擇的聲音,然後讓引擎說一些單詞。這是一個簡短的代碼段,以演示一些API功能:
String text = "The answer to the ultimate question of life, the universe, and everything is 42" ;
try {
SpeechEngine speechEngine = SpeechEngineNative . getInstance ();
List < Voice > voices = speechEngine . getAvailableVoices ();
System . out . println ( "For now the following voices are supported: n " );
for ( Voice voice : voices ) {
System . out . printf ( "%s%n" , voice );
}
// We want to find a voice according our preferences
VoicePreferences voicePreferences = new VoicePreferences ();
voicePreferences . setLanguage ( "en" ); // ISO-639-1
voicePreferences . setCountry ( "GB" ); // ISO 3166-1 Alpha-2 code
voicePreferences . setGender ( VoicePreferences . Gender . FEMALE );
Voice voice = speechEngine . findVoiceByPreferences ( voicePreferences );
// simple fallback just in case our preferences didn't match any voice
if ( voice == null ) {
System . out . printf ( "Warning: Voice has not been found by the voice preferences %s%n" , voicePreferences );
voice = voices . get ( 0 ); // it is guaranteed that the speechEngine supports at least one voice
System . out . printf ( "Using " %s " instead.%n" , voice );
}
speechEngine . setVoice ( voice . getName ());
speechEngine . say ( text );
} catch ( SpeechEngineCreationException | IOException e ) {
System . err . println ( e . getMessage ());
}請繼續關注Maven Central上的工件。
為了演示目的,您還可以調用文本用戶界面(另請參見Main.java):
> java -jar jadapter-for-native-tts-0.12.0.jar "The answer to the ultimate question of life, the universe, and everything is 42"
0: name='Microsoft Hedda Desktop', culture='de-DE', gender='Female', age='Adult', description='Microsoft Hedda Desktop (de_DE, Female)'
1: name='Microsoft Hedda', culture='de-DE', gender='Female', age='Adult', description='Microsoft Hedda (de_DE, Female)'
2: name='Microsoft Katja', culture='de-DE', gender='Female', age='Adult', description='Microsoft Katja (de_DE, Female)'
3: name='Microsoft Stefan', culture='de-DE', gender='Male', age='Adult', description='Microsoft Stefan (de_DE, Male)'
4: name='Microsoft George', culture='en-GB', gender='Male', age='Adult', description='Microsoft George (en_GB, Male)'
5: name='Microsoft Hazel', culture='en-GB', gender='Female', age='Adult', description='Microsoft Hazel (en_GB, Female)'
6: name='Microsoft Susan', culture='en-GB', gender='Female', age='Adult', description='Microsoft Susan (en_GB, Female)'
7: name='Microsoft David', culture='en-US', gender='Male', age='Adult', description='Microsoft David (en_US, Male)'
8: name='Microsoft Mark', culture='en-US', gender='Male', age='Adult', description='Microsoft Mark (en_US, Male)'
9: name='Microsoft Zira', culture='en-US', gender='Female', age='Adult', description='Microsoft Zira (en_US, Female)'
10: name='Microsoft Helena', culture='es-ES', gender='Female', age='Adult', description='Microsoft Helena (es_ES, Female)'
11: name='Microsoft Laura', culture='es-ES', gender='Female', age='Adult', description='Microsoft Laura (es_ES, Female)'
12: name='Microsoft Pablo', culture='es-ES', gender='Male', age='Adult', description='Microsoft Pablo (es_ES, Male)'
13: name='Microsoft Hortense', culture='fr-FR', gender='Female', age='Adult', description='Microsoft Hortense (fr_FR, Female)'
14: name='Microsoft Julie', culture='fr-FR', gender='Female', age='Adult', description='Microsoft Julie (fr_FR, Female)'
15: name='Microsoft Paul', culture='fr-FR', gender='Male', age='Adult', description='Microsoft Paul (fr_FR, Male)'
16: name='Microsoft Cosimo', culture='it-IT', gender='Male', age='Adult', description='Microsoft Cosimo (it_IT, Male)'
17: name='Microsoft Elsa', culture='it-IT', gender='Female', age='Adult', description='Microsoft Elsa (it_IT, Female)'
18: name='Microsoft Bengt', culture='sv-SE', gender='Male', age='Adult', description='Microsoft Bengt (sv_SE, Male)'
19: name='Microsoft Karsten', culture='de-CH', gender='Male', age='Adult', description='Microsoft Karsten (de_CH, Male)'
20: name='Microsoft Hazel Desktop', culture='en-GB', gender='Female', age='Adult', description='Microsoft Hazel Desktop (en_GB, Female)'
21: name='Microsoft David Desktop', culture='en-US', gender='Male', age='Adult', description='Microsoft David Desktop (en_US, Male)'
22: name='Microsoft Zira Desktop', culture='en-US', gender='Female', age='Adult', description='Microsoft Zira Desktop (en_US, Female)'
23: name='Microsoft Helena Desktop', culture='es-ES', gender='Female', age='Adult', description='Microsoft Helena Desktop (es_ES, Female)'
24: name='Microsoft Hortense Desktop', culture='fr-FR', gender='Female', age='Adult', description='Microsoft Hortense Desktop (fr_FR, Female)'
25: name='Microsoft Elsa Desktop', culture='it-IT', gender='Female', age='Adult', description='Microsoft Elsa Desktop (it_IT, Female)'
Enter the voice id (1-25) or hit enter to specify voice preferences:
Language: en
Country: GB
Gender: female
You have selected the following voice preferences:
language='en', country='GB', gender='FEMALE', age=''
I have found the following voice matching your voice preferences:
name='Microsoft Hazel', culture='en-GB', gender='Female', age='Adult', description='Microsoft Hazel (en_GB, Female)'
see also https://support.microsoft.com/en-us/topic/how-to-download-text-to-speech-languages-for-windows-10-d5a6b612-b3ae-423f-afa5-4f6caf1ec5d3 and https://github.com/jonelo/unlock-win-tts-voices
另請參見https://support.apple.com/de-de/guide/mac-help/mchlp2290/mac
該項目提供的許可是MIT許可證。