<resources xmlns:android="http://schemas.android.com/apk/res/android" | <resources xmlns:android="http://schemas.android.com/apk/res/android" | ||||
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> | xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> | ||||
<string name="tts_settings_label" msgid="2696301846672491410">"eSpeak TTS Settings"</string> | <string name="tts_settings_label" msgid="2696301846672491410">"eSpeak TTS Settings"</string> | ||||
<string name="setting_default_pitch" msgid="2063082697363767286">"Default pitch"</string> | |||||
<string name="setting_default_pitch" msgid="2063082697363767286">"Pitch"</string> | |||||
<string name="setting_default_gender" msgid="8721577045178419807">"Voice gender"</string> | <string name="setting_default_gender" msgid="8721577045178419807">"Voice gender"</string> | ||||
<string name="setting_default_rate" msgid="3255750767876184606">"Speech rate multiplier"</string> | <string name="setting_default_rate" msgid="3255750767876184606">"Speech rate multiplier"</string> | ||||
<string name="installing_voice_data" msgid="1199950160686799120">"Installing voice data…"</string> | <string name="installing_voice_data" msgid="1199950160686799120">"Installing voice data…"</string> |
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||||
<resources> | <resources> | ||||
<string-array name="default_pitch_values"> | |||||
<item>50</item> | |||||
<item>75</item> | |||||
<item>100</item> | |||||
<item>150</item> | |||||
<item>200</item> | |||||
</string-array> | |||||
<string-array name="default_rate_values"> | <string-array name="default_rate_values"> | ||||
<item>100</item> | <item>100</item> | ||||
<item>200</item> | <item>200</item> |
Source: Preference title. | Source: Preference title. | ||||
Description: Title for the preference that controls default voice pitch. | Description: Title for the preference that controls default voice pitch. | ||||
--> | --> | ||||
<string name="setting_default_pitch">Default pitch</string> | |||||
<string name="setting_default_pitch">Pitch</string> | |||||
<!-- | <!-- | ||||
Source: Preference title. | Source: Preference title. | ||||
Description: Title for the preference that controls default voice gender. | Description: Title for the preference that controls default voice gender. | ||||
Source: Pitch preference labels. | Source: Pitch preference labels. | ||||
Description: Labels for possible pitch values. | Description: Labels for possible pitch values. | ||||
--> | --> | ||||
<string-array name="default_pitch_entries"> | |||||
<item>Very low</item> | |||||
<item>Low</item> | |||||
<item>Normal</item> | |||||
<item>High</item> | |||||
<item>Very high</item> | |||||
</string-array> | |||||
<!-- | <!-- | ||||
Source: Gender preference labels. | Source: Gender preference labels. | ||||
Description: Labels for possible gender values. | Description: Labels for possible gender values. |
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" > | <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" > | ||||
<ListPreference | |||||
android:defaultValue="100" | |||||
android:entries="@array/default_pitch_entries" | |||||
android:entryValues="@array/default_pitch_values" | |||||
android:key="default_pitch" | |||||
android:summary="%s" | |||||
android:title="@string/setting_default_pitch" /> | |||||
<ListPreference | <ListPreference | ||||
android:defaultValue="100" | android:defaultValue="100" | ||||
android:entries="@array/default_rate_entries" | android:entries="@array/default_rate_entries" |
final int gender = getPreferenceValue("default_gender", 0); | final int gender = getPreferenceValue("default_gender", 0); | ||||
final int rate = (getPreferenceValue("default_rate", 100) / 100) * mEngine.Rate.getDefaultValue(); | final int rate = (getPreferenceValue("default_rate", 100) / 100) * mEngine.Rate.getDefaultValue(); | ||||
final int pitch = getPreferenceValue("default_pitch", 100) / 2; | |||||
final Bundle params = request.getParams(); | final Bundle params = request.getParams(); | ||||
int pitch = getPreferenceValue("espeak_pitch", Integer.MIN_VALUE); | |||||
if (pitch == Integer.MIN_VALUE) { | |||||
// Try the old eyes-free setting: | |||||
pitch = getPreferenceValue("default_pitch", 100) / 2; | |||||
} | |||||
if (DEBUG) { | if (DEBUG) { | ||||
Log.i(TAG, "Received synthesis request: {language=\"" + mMatchingVoice.name + "\"}"); | Log.i(TAG, "Received synthesis request: {language=\"" + mMatchingVoice.name + "\"}"); | ||||
return; | return; | ||||
} | } | ||||
// Migrate old eyes-free settings to the new settings: | |||||
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); | |||||
final SharedPreferences.Editor editor = prefs.edit(); | |||||
String pitch = prefs.getString("espeak_pitch", null); | |||||
if (pitch == null) { | |||||
// Try the old eyes-free setting: | |||||
pitch = prefs.getString("default_pitch", "100"); | |||||
int pitchValue = Integer.parseInt(pitch) / 2; | |||||
editor.putString("espeak_pitch", Integer.toString(pitchValue)); | |||||
} | |||||
editor.commit(); | |||||
// Bind eSpeak parameters to preference settings: | |||||
SpeechSynthesis engine = new SpeechSynthesis(context, null); | SpeechSynthesis engine = new SpeechSynthesis(context, null); | ||||
group.addPreference(createPreference(context, engine.Pitch, "espeak_pitch", R.string.setting_default_pitch)); | |||||
group.addPreference(createPreference(context, engine.Volume, "espeak_volume", R.string.espeak_volume)); | group.addPreference(createPreference(context, engine.Volume, "espeak_volume", R.string.espeak_volume)); | ||||
} | } | ||||