Pass all test strings through our character replacement method

This commit is contained in:
sonora 2017-06-20 18:26:47 +02:00
parent 8496abef67
commit dbfad1e88b
2 changed files with 12 additions and 4 deletions

View file

@ -25,6 +25,7 @@ import net.osmand.plus.voice.AbstractPrologCommandPlayer;
import net.osmand.plus.voice.TTSCommandPlayerImpl;
import net.osmand.plus.voice.CommandBuilder;
import net.osmand.plus.voice.CommandPlayer;
import net.osmand.plus.routing.VoiceRouter;
import net.osmand.util.Algorithms;
import java.io.File;
@ -190,7 +191,14 @@ public class TestVoiceActivity extends OsmandActionBarActivity {
}
return new Struct("");
}
private Term street(CommandPlayer p, String name, String ref, String destName, String currentName) {
// Pass all test strings through our character replacement method
ref = VoiceRouter.getSpeakablePointName(ref);
name = VoiceRouter.getSpeakablePointName(name);
destName = VoiceRouter.getSpeakablePointName(destName);
currentName = VoiceRouter.getSpeakablePointName(currentName);
if(p.supportsStructuredStreetNames()) {
Struct next = new Struct(new Term[] { getTermString(ref),
getTermString(name),

View file

@ -618,18 +618,18 @@ public class VoiceRouter {
return empty;
}
public String getSpeakablePointName(String pn) {
// Replace characters which may produce unwanted tts sounds:
public static String getSpeakablePointName(String pn) {
// Replace characters which may produce unwanted TTS sounds:
if (pn != null) {
pn = pn.replace('-', ' ');
pn = pn.replace(':', ' ');
pn = pn.replace(";", ", "); // Trailing blank prevents punctuation being pronounced. Replace by comma for better intonation.
pn = pn.replace("/", ", "); // Slash is actually pronounced by many TTS engines, ceeating an awkward voice prompt, better replace by comma.
if ((player != null) && (!player.getLanguage().equals("de"))) {
pn = pn.replace("\u00df", "ss"); // Helps non-German tts voices to pronounce German Strasse (=street)
pn = pn.replace("\u00df", "ss"); // Helps non-German TTS voices to pronounce German Straße (=street)
}
if ((player != null) && (player.getLanguage().startsWith("en"))) {
pn = pn.replace("SR", "S R"); // Avoid SR (as for State Route or Strada Regionale) be pronounced as "Senior" in English tts voice
pn = pn.replace("SR", "S R"); // Avoid SR (as for State Route or Strada Regionale) be pronounced as "Senior" in English TTS voice
pn = pn.replace("Dr.", "Dr "); // Avoid pause many English TTS voices introduce after period
}
}