Skip to main content

Голосові пакети

🚧 This article is incomplete

This article is incomplete & needs to be reviewed. You can help by creating a pull request.

OsmAnd підтримує два типи голосових пакетів:

Якщо ви не знайшли потрібний голосовий пакет, будь ласка, скористайтеся наступними прикладами та створіть власний голосовий пакет. Приклади - https://github.com/osmandapp/OsmAnd-resources/tree/master/voice, німецький пакет de_0.voice.zip, англійський пакет en_0.voice.zip.

Різниця між TTS та записаними пакетами

  • двигун Text-To-Speech підтримує вимову назв вулиць, посилань, назв POI
  • усі пакети, що підтримуються Text-To-Speech, постачаються та оновлюються разом із додатком
  • записаний пакет потрібно встановлювати та оновлювати вручну (хоча файл конфігурації може оновлюватися разом із оновленням додатка)
  • записаний пакет може не підтримувати деякі правильні форми, і підтримка обмежена
  • записаний пакет не вимагає встановлення будь-якого пропрієтарного двигуна TTS

Структура пакета

Голосовий пакет зазвичай поширюється як .voice.zip, де zip містить одну папку з lang_tts.js (основний файл конфігурації) та звукові файли, якщо вони присутні.

Файли конфігурації написані мовою JavaScript. Усі файли конфігурації за замовчуванням є TTS-пакетами, навіть якщо ще немає TTS для підтримки мови. А пізніше конфігурація розширюється шляхом зіставлення "словникових фраз" з "назвами записаних файлів".

function populateDictionary(tts) {
// ROUTE CALCULATED
dictionary["route_is1"] = tts ? "Die berechnete Strecke ist" : "route_is1.ogg";
dictionary["route_is2"] = tts ? "lang" : "route_is2.ogg";
dictionary["route_calculate"] = tts ? "Route neu berechnet" : "route_calculate.ogg";
dictionary["distance"] = tts ? "die Entfernung beträgt" : "distance.ogg";

// LEFT/RIGHT
dictionary["prepare"] = tts ? "Demnächst " : "prepare.ogg"; // Demnächst sounds better then Vorbereiten zum
dictionary["after"] = tts ? "nach" : "after.ogg";

dictionary["left"] = tts ? "links abbiegen" : "left.ogg";
.....
}

function route_recalc(dist, seconds) {
return dictionary["route_calculate"] + (tts ? ", " : " ") + distance(dist, "nominativ") + (tts ? ", " : " ") + dictionary["time"] + " " + time(seconds) + (tts ? ". " : " ");
}

Створення власного пакета

Будь ласка, перегляньте ресурси проєкту та використовуйте ту саму структуру папок, що й німецький пакет - просто скопіюйте. Після цього ви можете змінити, запустити скрипт генерації та вказати необхідні аргументи. Довідка знаходиться всередині скрипта.

Тестування голосового пакета (Android)

Для тестування можна використовувати:

  • Навігацію
  • Симуляцію навігації,
  • або зручну версію плагіна розробки OsmAnd, який симулює різні голосові команди для тестування.