diff --git a/voice/hsb/hsb_tts.js b/voice/hsb/hsb_tts.js new file mode 100644 index 0000000000..2a65b4f25f --- /dev/null +++ b/voice/hsb/hsb_tts.js @@ -0,0 +1,769 @@ +// IMPLEMENTED (X) or MISSING ( ) FEATURES, (N/A) if not needed in this language: +// +// (X) Basic navigation prompts: route (re)calculated (with distance and time support), turns, roundabouts, u-turns, straight/follow, arrival +// (X) Announce nearby point names (destination / intermediate / GPX waypoint / favorites / POI) +// (X) Attention prompts: SPEED_CAMERA; SPEED_LIMIT; BORDER_CONTROL; RAILWAY; TRAFFIC_CALMING; TOLL_BOOTH; STOP; PEDESTRIAN; MAXIMUM; TUNNEL +// (X) Other prompts: gps lost, off route, back to route +// (X) Street name and prepositions (onto / on / to) and street destination (toward) support +// (X) Distance unit support (meters / feet / yard) +// (X) Special grammar: nth(nominative/instrumental), distance(accusative/locative/workaround), special plural 1 2 3_4 +// (X) Support announcing highway exits + +var metricConst; +var dictionary = {}; +var tts; + +//// STRINGS +//////////////////////////////////////////////////////////////// +function populateDictionary(tts) { + // ROUTE CALCULATED + dictionary["route_is"] = tts ? "jězba traje" : "route_is.ogg"; + dictionary["route_calculate"] = tts ? "liču hišće raz" : "route_calculate.ogg"; + dictionary["distance"] = tts ? "pojědźeće" : "distance.ogg"; + + // LEFT/RIGHT + //dictionary["prepare"] = tts ? "budete odbočovat" : "prepare.ogg"; + dictionary["after"] = tts ? "za" : "after.ogg"; + dictionary["in"] = tts ? "za" : "in.ogg"; + + dictionary["left"] = tts ? "wotbočće nalěwo" : "left.ogg"; + dictionary["left_sh"] = tts ? "wotbočće nahle nalěwo" : "left_sh.ogg"; + dictionary["left_sl"] = tts ? "wotbočće złaha nalěwo" : "left_sl.ogg"; + dictionary["right"] = tts ? "wotbočće naprawo" : "right.ogg"; + dictionary["right_sh"] = tts ? "wotbočće nahle naprawo" : "right_sh.ogg"; + dictionary["right_sl"] = tts ? "wotbočće złaha naprawo" : "right_sl.ogg"; + // Note: "left_keep"/"right_keep" is a turn type aiding lane selection, while "left_bear"/"right_bear" is as brief "then..." preparation for the turn-after-next. In some languages l/r_keep may not differ from l/r_bear. + dictionary["left_keep"] = tts ? "dźeržće so nalěwo" : "left_keep.ogg"; + dictionary["right_keep"] = tts ? "dźeržće so naprawo" : "right_keep.ogg"; + dictionary["left_bear"] = tts ? "dźeržće so nalěwo" : "left_bear.ogg"; // in English the same as left_keep, may be different in other languages + dictionary["right_bear"] = tts ? "dźeržće so naprawo" : "right_bear.ogg"; // in English the same as right_keep, may be different in other languages + + // U-TURNS + //dictionary["prepare_make_uturn"] = tts ? "se budete otáčet zpět" : "prepare_make_uturn.ogg"; + dictionary["make_uturn"] = tts ? "zawróćće so" : "make_uturn.ogg"; + dictionary["make_uturn2"] = tts ? "zawróćće so, ručež móžeće" : "make_uturn.ogg"; + dictionary["make_uturn_wp"] = tts ? "zawróćće so, ručež móžeće" : "make_uturn_wp.ogg"; + + // ROUNDABOUTS + dictionary["prepare_roundabout"] = tts ? "přijědźeće na kružny wobchad" : "prepare_roundabout.ogg"; + dictionary["roundabout"] = tts ? "jědźće na kružny wobchad" : "roundabout.ogg"; + dictionary["then"] = tts ? "potom" : "then.ogg"; + dictionary["and"] = tts ? "a" : "and.ogg"; + dictionary["take"] = tts ? "jědźće" : "take.ogg"; + dictionary["take2"] = tts ? "wujědźće " : "take2.ogg"; + dictionary["exit"] = tts ? "wujězd" : "exit.ogg"; + dictionary["exit2"] = tts ? "z wujězdom" : "exit2.ogg"; + + dictionary["1st"] = tts ? "prěni" : "1st.ogg"; + dictionary["2nd"] = tts ? "druhi" : "2nd.ogg"; + dictionary["3rd"] = tts ? "třeći" : "3rd.ogg"; + dictionary["4th"] = tts ? "štwórty" : "4th.ogg"; + dictionary["5th"] = tts ? "pjaty" : "5th.ogg"; + dictionary["6th"] = tts ? "šesty" : "6th.ogg"; + dictionary["7th"] = tts ? "sedmy" : "7th.ogg"; + dictionary["8th"] = tts ? "wosmy" : "8th.ogg"; + dictionary["9th"] = tts ? "dźewjaty" : "9th.ogg"; + dictionary["10th"] = tts ? "dźesaty" : "10th.ogg"; + dictionary["11th"] = tts ? "jědnaty" : "11th.ogg"; + dictionary["12th"] = tts ? "dwanaty" : "12th.ogg"; + dictionary["13th"] = tts ? "třinaty" : "13th.ogg"; + dictionary["14th"] = tts ? "štyrnaty" : "14th.ogg"; + dictionary["15th"] = tts ? "pjatnaty" : "15th.ogg"; + dictionary["16th"] = tts ? "šěsnaty" : "16th.ogg"; + dictionary["17th"] = tts ? "sydomnaty" : "17th.ogg"; + + dictionary["1st_inst"] = tts ? "prěnim" : "1st_inst.ogg"; + dictionary["2nd_inst"] = tts ? "druhim" : "2nd_inst.ogg"; + dictionary["3rd_inst"] = tts ? "třećim" : "3rd_inst.ogg"; + dictionary["4th_inst"] = tts ? "štwórtym" : "4th_inst.ogg"; + dictionary["5th_inst"] = tts ? "pjatym" : "5th_inst.ogg"; + dictionary["6th_inst"] = tts ? "šestym" : "6th_inst.ogg"; + dictionary["7th_inst"] = tts ? "sedmym" : "7th_inst.ogg"; + dictionary["8th_inst"] = tts ? "wosmym" : "8th_inst.ogg"; + dictionary["9th_inst"] = tts ? "dźewjatym" : "9th_inst.ogg"; + dictionary["10th_inst"] = tts ? "dźesatym" : "10th_inst.ogg"; + dictionary["11th_inst"] = tts ? "jědnatym" : "11th_inst.ogg"; + dictionary["12th_inst"] = tts ? "dwanatym" : "12th_inst.ogg"; + dictionary["13th_inst"] = tts ? "třinatym" : "13th_inst.ogg"; + dictionary["14th_inst"] = tts ? "štyrnatym" : "14th_inst.ogg"; + dictionary["15th_inst"] = tts ? "pjatnatym" : "15th_inst.ogg"; + dictionary["16th_inst"] = tts ? "šěsnatym" : "16th_inst.ogg"; + dictionary["17th_inst"] = tts ? "sydomnatym" : "17th_inst.ogg"; + + // STRAIGHT/FOLLOW + dictionary["go_ahead"] = tts ? "dale runje won" : "go_ahead.ogg"; + dictionary["follow"] = tts ? "jědźće dale" : "go_ahead_m.ogg"; + + // ARRIVE + dictionary["and_arrive_destination"] = tts ? "a docpějeće cil" : "and_arrive_destination.ogg"; + dictionary["reached_destination"] = tts ? "sće dojěli" : "reached_destination.ogg"; + dictionary["and_arrive_intermediate"] = tts ? "dojědźeće na mjezycil" : "and_arrive_intermediate.ogg"; + dictionary["reached_intermediate"] = tts ? "dojěli sće na mjezycil" : "reached_intermediate.ogg"; + + // NEARBY POINTS + dictionary["and_arrive_waypoint"] = tts ? "Pojědźeće přez mjezycil" : "and_arrive_waypoint.ogg"; + dictionary["reached_waypoint"] = tts ? "sće jěli přez mjezycil" : "reached_waypoint.ogg"; + dictionary["and_arrive_favorite"] = tts ? "tu budźe rjana wěc" : "and_arrive_favorite.ogg"; + dictionary["reached_favorite"] = tts ? "to bě runje zajimawa wěc" : "reached_favorite.ogg"; + dictionary["and_arrive_poi"] = tts ? "pojědźeće přez zajimawe městno" : "and_arrive_poi.ogg"; + dictionary["reached_poi"] = tts ? "skomdźili sće zajimawe městno" : "reached_poi.ogg"; + + // ATTENTION + dictionary["exceed_limit"] = tts ? "tempolimit" : "exceed_limit.ogg"; + dictionary["attention"] = tts ? "kedźbu" : "attention.ogg"; + dictionary["speed_camera"] = tts ? "błyskač" : "speed_camera.ogg"; + dictionary["border_control"] = tts ? "hraniční kontrola" : "border_control.ogg"; + dictionary["railroad_crossing"] = tts ? "železniski přechod" : "railroad_crossing.ogg"; + //není jen zpomalovač, ale i šikana a ochranný ostrůvek; viz issue #5605 + dictionary["traffic_calming"] = tts ? "spomalak" : "traffic_calming.ogg"; + dictionary["toll_booth"] = tts ? "mawtnišćo" : "toll_booth.ogg"; + dictionary["stop"] = tts ? "stop" : "stop.ogg"; + dictionary["pedestrian_crosswalk"] = tts ? "pěši přechod" : "pedestrian_crosswalk.ogg"; + dictionary["tunnel"] = tts ? "tunel" : "tunnel.ogg"; //???????? + + // OTHER PROMPTS + dictionary["location_lost"] = tts ? "nimaće GPS GPS signal je preč" : "location_lost.ogg"; + dictionary["location_recovered"] = tts ? "GPS tu zaso je" : "location_recovered.ogg"; + dictionary["off_route"] = tts ? "jědźeće hinak" : "off_route.ogg"; + dictionary["off_route2"] = tts ? " mimo trasu" : "off_route2.ogg"; //??????? + dictionary["back_on_route"] = tts ? "sće zaso na prawym puću" : "back_on_route.ogg"; + + // STREET NAME PREPOSITIONS + dictionary["onto"] = tts ? "na" : "on.ogg"; + dictionary["on"] = tts ? "na" : "on.ogg"; + dictionary["to"] = tts ? "na" : "to.ogg"; + dictionary["toward"] = tts ? "k" : "toward.ogg"; + + // DISTANCE UNIT SUPPORT + dictionary["meters_accusative"] = tts ? "metrow" : "meters_accusative.ogg"; + dictionary["around_1_kilometer_accusative"] = tts ? "něhdźe kilometer" : "around_1_kilometer_accusative.ogg"; + dictionary["around_2_kilometers_accusative"] = tts ? "přibližně dva kilometry" : "around_2_kilometers_accusative.ogg"; //??????? + dictionary["around"] = tts ? "přibližnje" : "around.ogg"; + dictionary["kilometers_accusative3_4"] = tts ? "kilometry" : "kilometers_accusative3_4.ogg"; + dictionary["kilometers_accusative5"] = tts ? "kilometrow" : "kilometers_accusative5.ogg"; + + dictionary["meters_locative"] = tts ? "metrach" : "meters_locative.ogg"; + dictionary["around_1_kilometer_locative"] = tts ? "za něhdźe kilometer" : "around_1_kilometer_locative.ogg"; + dictionary["around_2_kilometers_locative"] = tts ? "přibližně dvou kilometrech" : "around_2_kilometers_locative.ogg"; //??????? + dictionary["kilometers_locative"] = tts ? "kilometrach" : "kilometers_locative.ogg"; + + dictionary["farther_workaround"] = tts ? "dale" : "farther_workaround.ogg"; + dictionary["around_workaround"] = tts ? "dale něhdźe" : "around_workaround.ogg"; + + dictionary["feet_accusative"] = tts ? "stopow" : "feet_accusative.ogg"; + dictionary["tenths_of_a_mile_accusative"] = tts ? "dźesaćiny mile" : "tenths_of_a_mile_accusative.ogg"; + dictionary["around_1_mile_accusative"] = tts ? "něhdźe milu" : "around_1_mile_accusative.ogg"; + dictionary["miles_accusative"] = tts ? "milow" : "miles_accusative.ogg"; + + dictionary["feet_locative"] = tts ? "stopach" : "feet_locative.ogg"; + dictionary["tenths_of_a_mile_locative"] = tts ? "dźesaćinach mile" : "tenths_of_a_mile_locative.ogg"; + dictionary["around_1_mile_locative"] = tts ? "něhdźe jednej mili" : "around_1_mile_locative.ogg"; + dictionary["miles_locative"] = tts ? "milach" : "miles_locative.ogg"; + + dictionary["yards_accusative"] = tts ? "jardow" : "yards_accusative.ogg"; + dictionary["yards_locative"] = tts ? "jardach" : "yards_locative.ogg"; + + // TIME SUPPORT + dictionary["time"] = tts ? "trjebaće" : "time.ogg"; + dictionary["1_hour"] = tts ? "jedna hodźina" : "1_hour.ogg"; + dictionary["2_hours"] = tts ? "dwě hodźinje" : "2_hours.ogg"; + dictionary["3_4_hours"] = tts ? "hodiny" : "3_4_hours.ogg"; + dictionary["hours"] = tts ? "hodin" : "hours.ogg"; + dictionary["less_a_minute"] = tts ? "méně než jedna minuta" : "less_a_minute.ogg"; + dictionary["1_minute"] = tts ? "jedna minuta" : "1_minute.ogg"; + dictionary["2_minutes"] = tts ? "dvě minuty" : "2_minutes.ogg"; + dictionary["3_4_minutes"] = tts ? "hodźiny" : "3_4_minutes.ogg"; + dictionary["minutes"] = tts ? "mjeńšin" : "minutes.ogg"; +} + +//// COMMAND BUILDING / WORD ORDER +//////////////////////////////////////////////////////////////// +function setMetricConst(metrics) { + metricConst = metrics; +} + +function setMode(mode) { + tts = mode; + populateDictionary(mode); +} + +function route_new_calc(dist, timeVal) { + return dictionary["route_is"] + " " + distance(dist, "accusative", false) + " " + dictionary["time"] + " " + time(timeVal) + (tts ? ". " : " "); +} + +function distance(dist, declension, isWorkaround) { + var accusative = declension == "accusative"; + switch (metricConst) { + case "km-m": + if (dist < 17) { + return (tts ? Math.round(dist).toString() : ogg_dist(Math.round(dist))) + " " + dictionary["meters_" + declension]; + } else if (dist < 100) { + return ( + (isWorkaround ? dictionary["farther_workaround"] + " " : "") + + (tts ? (Math.round(dist / 10.0) * 10).toString() : ogg_dist(Math.round(dist / 10.0) * 10)) + + " " + + dictionary["meters_" + declension] + ); + } else if (dist < 1000) { + return ( + (isWorkaround ? dictionary["farther_workaround"] + " " : "") + + (tts ? (Math.round((2 * dist) / 100.0) * 50).toString() : ogg_dist(Math.round((2 * dist) / 100.0) * 50)) + + " " + + dictionary["meters_" + declension] + ); + } else if (dist < 1500) { + return dictionary["around_1_kilometer_" + declension]; + } else if (dist < 2500) { + return dictionary["around_2_kilometers_" + declension]; + } else if (dist < 4500) { + return ( + (isWorkaround ? dictionary["around_workaround"] + " " : "") + + (tts ? Math.round(dist / 1000.0).toString() : ogg_dist(Math.round(dist / 1000.0))) + + " " + + dictionary["kilometers_" + declension + (accusative ? "3_4" : "")] + ); + } else if (dist < 10000) { + return ( + (isWorkaround ? dictionary["around_workaround"] + " " : "") + + (tts ? Math.round(dist / 1000.0).toString() : ogg_dist(Math.round(dist / 1000.0))) + + " " + + dictionary["kilometers_" + declension + (accusative ? "5" : "")] + ); + } else { + return ( + (isWorkaround ? dictionary["farther_workaround"] + " " : "") + + (tts ? Math.round(dist / 1000.0).toString() : ogg_dist(Math.round(dist / 1000.0))) + + " " + + dictionary["kilometers_" + declension + (accusative ? "5" : "")] + ); + } + break; + case "mi-f": + if (dist < 91) { + return ( + (tts ? (Math.round((2 * dist) / 100.0 / 0.3048) * 50).toString() : ogg_dist(Math.round((2 * dist) / 100.0 / 0.3048) * 50)) + + " " + + dictionary["feet_" + declension] + ); + } else if (dist < 320) { + return ( + (tts ? (Math.round(dist / 100.0 / 0.3048) * 100).toString() : ogg_dist(Math.round(dist / 100.0 / 0.3048) * 100)) + + " " + + dictionary["feet_" + declension] + ); + } else if (dist < 1367) { + return (tts ? Math.round(dist / 161.0).toString() : ogg_dist(Math.round(dist / 161.0))) + " " + dictionary["tenths_of_a_mile_" + declension]; + } else if (dist < 2414) { + return dictionary["around_1_mile_" + declension]; + } else if (dist < 16093) { + return ( + dictionary["around"] + + " " + + (tts ? Math.round(dist / 1609.3).toString() : ogg_dist(Math.round(dist / 1609.3))) + + " " + + dictionary["miles_" + declension] + ); + } else { + return (tts ? Math.round(dist / 1609.3).toString() : ogg_dist(Math.round(dist / 1609.3))) + " " + dictionary["miles_" + declension]; + } + break; + case "mi-m": + if (dist < 17) { + return (tts ? Math.round(dist).toString() : ogg_dist(Math.round(dist))) + " " + dictionary["meters_" + declension]; + } else if (dist < 100) { + return ( + (isWorkaround ? dictionary["farther_workaround"] + " " : "") + + (tts ? (Math.round(dist / 10.0) * 10).toString() : ogg_dist(Math.round(dist / 10.0) * 10)) + + " " + + dictionary["meters_" + declension] + ); + } else if (dist < 1000) { + return ( + (isWorkaround ? dictionary["farther_workaround"] + " " : "") + + (tts ? (Math.round((2 * dist) / 100.0) * 50).toString() : ogg_dist(Math.round((2 * dist) / 100.0) * 50)) + + " " + + dictionary["meters_" + declension] + ); + } else if (dist < 1300) { + return ( + (tts ? (Math.round((2 * dist) / 100.0) * 50).toString() : ogg_dist(((2 * dist) / 100.0) * 50)) + " " + dictionary["meters_" + declension] + ); + } else if (dist < 2414) { + return dictionary["around_1_mile_" + declension]; + } else if (dist < 16093) { + return ( + dictionary["around"] + + " " + + (tts ? Math.round(dist / 1609.3).toString() : ogg_dist(Math.round(dist / 1609.3))) + + " " + + dictionary["miles_" + declension] + ); + } else { + return (tts ? Math.round(dist / 1609.3).toString() : ogg_dist(Math.round(dist / 1609.3))) + " " + dictionary["miles_" + declension]; + } + break; + case "mi-y": + if (dist < 17) { + return (tts ? Math.round(dist / 0.9144).toString() : ogg_dist(Math.round(dist / 0.9144))) + " " + dictionary["yards_" + declension]; + } else if (dist < 100) { + return ( + (tts ? (Math.round(dist / 10.0 / 0.9144) * 10).toString() : ogg_dist(Math.round(dist / 10.0 / 0.9144) * 10)) + + " " + + dictionary["yards_" + declension] + ); + } else if (dist < 1300) { + return ( + (tts ? (Math.round((2 * dist) / 100.0 / 0.9144) * 50).toString() : ogg_dist(Math.round((2 * dist) / 100.0 / 0.9144) * 50)) + + " " + + dictionary["yards_" + declension] + ); + } else if (dist < 2414) { + return dictionary["around_1_mile_" + declension]; + } else if (dist < 16093) { + return ( + dictionary["around"] + + " " + + (tts ? Math.round(dist / 1609.3).toString() : ogg_dist(Math.round(dist / 1609.3))) + + " " + + dictionary["miles_" + declension] + ); + } else { + return (tts ? Math.round(dist / 1609.3).toString() : ogg_dist(Math.round(dist / 1609.3))) + " " + dictionary["miles_" + declension]; + } + break; + } +} + +function time(seconds) { + var minutes = Math.round(seconds / 60.0); + var oggMinutes = Math.round((seconds / 300.0) * 5); + if (seconds < 30) { + return dictionary["less_a_minute"]; + } else if (seconds < 90) { + return dictionary["1_minute"]; + } else if (seconds < 150) { + return dictionary["2_minutes"]; + } else if (minutes % 60 == 0 && tts) { + return hours(minutes); + } else if (minutes % 60 == 1 && tts) { + return hours(minutes) + " " + dictionary["1_minute"]; + } else if (minutes % 60 == 2 && tts) { + return hours(minutes) + " " + dictionary["2_minutes"]; + } else if (minutes % 60 < 5 && tts) { + return hours(minutes) + " " + (minutes % 60).toString() + " " + dictionary["3_4_minutes"]; + } else if (tts) { + return hours(minutes) + " " + (minutes % 60).toString() + " " + dictionary["minutes"]; + } else if (!tts && seconds < 270) { + return minutes.toString() + ".ogg " + dictionary["3_4_minutes"]; + } else if (!tts && oggMinutes % 60 > 0) { + return hours(oggMinutes) + " " + (oggMinutes % 60).toString() + ".ogg " + dictionary["minutes"]; + } else if (!tts) { + return hours(oggMinutes); + } +} + +function hours(minutes) { + if (minutes < 60) { + return ""; + } else if (minutes < 120) { + return dictionary["1_hour"]; + } else if (minutes < 180) { + return dictionary["2_hours"]; + } else if (minutes < 300) { + return Math.floor(minutes / 60).toString() + " " + dictionary["3_4_hours"]; + } else { + var hours = minutes / 60; + return Math.floor(hours).toString() + (!tts ? ".ogg " : " ") + dictionary["hours"]; + } +} + +function route_recalc(dist, seconds) { + return ( + dictionary["route_calculate"] + + (tts ? ". " : " ") + + dictionary["distance"] + + " " + + distance(dist, "accusative", false) + + " " + + dictionary["time"] + + " " + + time(seconds) + + (tts ? ". " : " ") + ); +} + +function go_ahead(dist, streetName) { + if (dist == -1) { + return dictionary["go_ahead"]; + } else { + return dictionary["follow"] + " " + distance(dist, "accusative", true) + " " + follow_street(streetName); + } +} + +function follow_street(streetName) { + if ((streetName["toDest"] == "" && streetName["toStreetName"] == "" && streetName["toRef"] == "") || Object.keys(streetName).length == 0 || !tts) { + return ""; + } else if (streetName["toStreetName"] == "" && streetName["toRef"] == "") { + return dictionary["to"] + " " + streetName["toDest"]; + } else if ( + (streetName["toRef"] == streetName["fromRef"] && streetName["toStreetName"] == streetName["fromStreetName"]) || + (streetName["toRef"] == streetName["fromRef"] && streetName["toStreetName"] == "") + ) { + return dictionary["on"] + " " + assemble_street_name(streetName); + } else if (!(streetName["toRef"] == streetName["fromRef"] && streetName["toStreetName"] == streetName["fromStreetName"])) { + return dictionary["to"] + " " + assemble_street_name(streetName); + } +} + +function turn(turnType, dist, streetName) { + if (dist == -1) { + return getTurnType(turnType) + " " + turn_street(streetName); + } else { + return dictionary["after"] + " " + distance(dist, "locative", false) + " " + getTurnType(turnType) + " " + turn_street(streetName); + } +} + +function take_exit(turnType, dist, exitString, exitInt, streetName) { + if (dist == -1) { + return getTurnType(turnType) + " " + dictionary["onto"] + " " + getExitNumber(exitString, exitInt) + " " + take_exit_name(streetName); + } else { + return ( + dictionary["after"] + + " " + + distance(dist, "locative", false) + + " " + + getTurnType(turnType) + + " " + + dictionary["onto"] + + " " + + getExitNumber(exitString, exitInt) + + " " + + take_exit_name(streetName) + ); + } +} + +function take_exit_name(streetName) { + if (Object.keys(streetName).length == 0 || (streetName["toDest"] == "" && streetName["toStreetName"] == "") || !tts) { + return ""; + } else if (streetName["toDest"] != "") { + return (tts ? ", " : " ") + streetName["toStreetName"] + " " + dictionary["toward"] + " " + streetName["toDest"]; + } else if (streetName["toStreetName"] != "") { + return (tts ? ", " : " ") + streetName["toStreetName"]; + } else { + return ""; + } +} + +function getExitNumber(exitString, exitInt) { + if (!tts && exitInt > 0 && exitInt < 18) { + return nth(exitInt) + " " + dictionary["exit"]; + } else if (tts) { + return dictionary["exit"] + " " + exitString; + } else { + return dictionary["exit"]; + } +} + +function getTurnType(turnType) { + switch (turnType) { + case "left": + return dictionary["left"]; + break; + case "left_sh": + return dictionary["left_sh"]; + break; + case "left_sl": + return dictionary["left_sl"]; + break; + case "right": + return dictionary["right"]; + break; + case "right_sh": + return dictionary["right_sh"]; + break; + case "right_sl": + return dictionary["right_sl"]; + break; + case "left_keep": + return dictionary["left_keep"]; + break; + case "right_keep": + return dictionary["right_keep"]; + break; + } +} + +function then() { + return " " + dictionary["and"] + " " + dictionary["then"] + " "; +} + +function roundabout(dist, angle, exit, streetName) { + if (dist == -1) { + return dictionary["take2"] + " " + nth(exit, "_inst") + " " + dictionary["exit2"] + " " + turn_street(streetName); + } else { + return ( + dictionary["in"] + + " " + + distance(dist, "locative", false) + + " " + + dictionary["roundabout"] + + " " + + dictionary["take"] + + " " + + nth(exit, "") + + " " + + dictionary["exit"] + + " " + + turn_street(streetName) + ); + } +} + +function turn_street(streetName) { + if (Object.keys(streetName).length == 0 || (streetName["toDest"] == "" && streetName["toStreetName"] == "" && streetName["toRef"] == "") || !tts) { + return ""; + } else if (streetName["toStreetName"] == "" && streetName["toRef"] == "") { + return dictionary["toward"] + " " + streetName["toDest"]; + } else if (streetName["toRef"] == streetName["fromRef"] && streetName["toStreetName"] == streetName["fromStreetName"]) { + return dictionary["on"] + " " + assemble_street_name(streetName); + } else if ( + (streetName["toRef"] == streetName["fromRef"] && streetName["toStreetName"] == streetName["fromStreetName"]) || + (streetName["toStreetName"] == "" && streetName["toRef"] == streetName["fromRef"]) + ) { + return dictionary["on"] + " " + assemble_street_name(streetName); + } else if (!(streetName["toRef"] == streetName["fromRef"] && streetName["toStreetName"] == streetName["fromStreetName"])) { + return dictionary["onto"] + " " + assemble_street_name(streetName); + } + return ""; +} + +function assemble_street_name(streetName) { + if (streetName["toDest"] == "") { + return streetName["toRef"] + " " + streetName["toStreetName"]; + } else if (streetName["toRef"] == "") { + return streetName["toStreetName"] + " " + dictionary["toward"] + " " + streetName["toDest"]; + } else if (streetName["toRef"] != "") { + return streetName["toRef"] + " " + dictionary["toward"] + " " + streetName["toDest"]; + } +} + +function nth(exit, declension) { + switch (exit) { + case 1: + return dictionary["1st" + declension]; + case 2: + return dictionary["2nd" + declension]; + case 3: + return dictionary["3rd" + declension]; + case 4: + return dictionary["4th" + declension]; + case 5: + return dictionary["5th" + declension]; + case 6: + return dictionary["6th" + declension]; + case 7: + return dictionary["7th" + declension]; + case 8: + return dictionary["8th" + declension]; + case 9: + return dictionary["9th" + declension]; + case 10: + return dictionary["10th" + declension]; + case 11: + return dictionary["11th" + declension]; + case 12: + return dictionary["12th" + declension]; + case 13: + return dictionary["13th" + declension]; + case 14: + return dictionary["14th" + declension]; + case 15: + return dictionary["15th" + declension]; + case 16: + return dictionary["16th" + declension]; + case 17: + return dictionary["17th" + declension]; + } +} + +function make_ut(dist, streetName) { + if (dist == -1) { + return dictionary["make_uturn2"] + " " + turn_street(streetName); + } else { + return dictionary["in"] + " " + distance(dist, "locative", false) + " " + dictionary["make_uturn"] + " " + turn_street(streetName); + } +} + +function bear_left(streetName) { + return dictionary["left_bear"]; +} + +function bear_right(streetName) { + return dictionary["right_bear"]; +} + +function prepare_make_ut(dist, streetName) { + return dictionary["after"] + " " + distance(dist, "locative", false) + " " + dictionary["make_uturn"] + " " + turn_street(streetName); +} + +function prepare_turn(turnType, dist, streetName) { + return dictionary["after"] + " " + distance(dist, "locative", false) + " " + getTurnType(turnType) + " " + turn_street(streetName); +} + +function prepare_roundabout(dist, exit, streetName) { + return dictionary["after"] + " " + distance(dist, "locative", false) + " " + dictionary["prepare_roundabout"]; +} + +function and_arrive_destination(dest) { + return dictionary["and_arrive_destination"] + " " + dest; +} + +function and_arrive_intermediate(dest) { + return dictionary["and_arrive_intermediate"] + " " + dest; +} + +function and_arrive_waypoint(dest) { + return dictionary["and_arrive_waypoint"] + " " + dest; +} + +function and_arrive_favorite(dest) { + return dictionary["and_arrive_favorite"] + " " + dest; +} + +function and_arrive_poi(dest) { + return dictionary["and_arrive_poi"] + " " + dest; +} + +function reached_destination(dest) { + return dictionary["reached_destination"] + " " + dest; +} + +function reached_waypoint(dest) { + return dictionary["reached_waypoint"] + " " + dest; +} + +function reached_intermediate(dest) { + return dictionary["reached_intermediate"] + " " + dest; +} + +function reached_favorite(dest) { + return dictionary["reached_favorite"] + " " + dest; +} + +function reached_poi(dest) { + return dictionary["reached_poi"] + " " + dest; +} + +function location_lost() { + return dictionary["location_lost"]; +} + +function location_recovered() { + return dictionary["location_recovered"]; +} + +function off_route(dist) { + return dictionary["off_route"] + " " + distance(dist, "accusative", false) + " " + dictionary["off_route2"]; +} + +function back_on_route() { + return dictionary["back_on_route"]; +} + +function make_ut_wp() { + return dictionary["make_uturn_wp"]; +} + +// TRAFFIC WARNINGS +function speed_alarm(maxSpeed, speed) { + return dictionary["exceed_limit"] + " " + maxSpeed.toString(); +} + +function attention(type) { + return dictionary["attention"] + (tts ? ", " : " ") + getAttentionString(type); +} + +function getAttentionString(type) { + switch (type) { + case "SPEED_CAMERA": + return dictionary["speed_camera"]; + break; + case "SPEED_LIMIT": + return ""; + break; + case "BORDER_CONTROL": + return dictionary["border_control"]; + break; + case "RAILWAY": + return dictionary["railroad_crossing"]; + break; + case "TRAFFIC_CALMING": + return dictionary["traffic_calming"]; + break; + case "TOLL_BOOTH": + return dictionary["toll_booth"]; + break; + case "STOP": + return dictionary["stop"]; + break; + case "PEDESTRIAN": + return dictionary["pedestrian_crosswalk"]; + break; + case "MAXIMUM": + return ""; + break; + case "TUNNEL": + return dictionary["tunnel"]; + break; + default: + return ""; + break; + } +} + +function ogg_dist(distance) { + if (distance == 0) { + return ""; + } else if (distance < 20) { + return Math.floor(distance).toString() + ".ogg "; + } else if (distance < 1000 && distance % 50 == 0) { + return distance.toString() + ".ogg "; + } else if (distance < 30) { + return "20.ogg " + ogg_dist(distance - 20); + } else if (distance < 40) { + return "30.ogg " + ogg_dist(distance - 30); + } else if (distance < 50) { + return "40.ogg " + ogg_dist(distance - 40); + } else if (distance < 60) { + return "50.ogg " + ogg_dist(distance - 50); + } else if (distance < 70) { + return "60.ogg " + ogg_dist(distance - 60); + } else if (distance < 80) { + return "70.ogg " + ogg_dist(distance - 70); + } else if (distance < 90) { + return "80.ogg " + ogg_dist(distance - 80); + } else if (distance < 100) { + return "90.ogg " + ogg_dist(distance - 90); + } else if (distance < 200) { + return "100.ogg " + ogg_dist(distance - 100); + } else if (distance < 300) { + return "200.ogg " + ogg_dist(distance - 200); + } else if (distance < 400) { + return "300.ogg " + ogg_dist(distance - 300); + } else if (distance < 500) { + return "400.ogg " + ogg_dist(distance - 400); + } else if (distance < 600) { + return "500.ogg " + ogg_dist(distance - 500); + } else if (distance < 700) { + return "600.ogg " + ogg_dist(distance - 600); + } else if (distance < 800) { + return "700.ogg " + ogg_dist(distance - 700); + } else if (distance < 900) { + return "800.ogg " + ogg_dist(distance - 800); + } else if (distance < 1000) { + return "900.ogg " + ogg_dist(distance - 900); + } else { + return ogg_dist(distance / 1000) + "1000.ogg " + ogg_dist(distance % 1000); + } +} diff --git a/voice/hsb/pack_rec_voice_std.sh b/voice/hsb/pack_rec_voice_std.sh new file mode 100755 index 0000000000..9889875601 --- /dev/null +++ b/voice/hsb/pack_rec_voice_std.sh @@ -0,0 +1,2 @@ +#!/bin/bash +./gen_voice.sh hsb "Upper Sorbian" "" hsb \ No newline at end of file diff --git a/voice/hsb/voice/1.ogg b/voice/hsb/voice/1.ogg new file mode 100644 index 0000000000..fcc7c3aecc Binary files /dev/null and b/voice/hsb/voice/1.ogg differ diff --git a/voice/hsb/voice/10.ogg b/voice/hsb/voice/10.ogg new file mode 100644 index 0000000000..14a11301d1 Binary files /dev/null and b/voice/hsb/voice/10.ogg differ diff --git a/voice/hsb/voice/100.ogg b/voice/hsb/voice/100.ogg new file mode 100644 index 0000000000..8dc9706cba Binary files /dev/null and b/voice/hsb/voice/100.ogg differ diff --git a/voice/hsb/voice/1000.ogg b/voice/hsb/voice/1000.ogg new file mode 100644 index 0000000000..c3b8938e0f Binary files /dev/null and b/voice/hsb/voice/1000.ogg differ diff --git a/voice/hsb/voice/1000_loc.ogg b/voice/hsb/voice/1000_loc.ogg new file mode 100644 index 0000000000..fc67fdc8cc Binary files /dev/null and b/voice/hsb/voice/1000_loc.ogg differ diff --git a/voice/hsb/voice/100_loc.ogg b/voice/hsb/voice/100_loc.ogg new file mode 100644 index 0000000000..323e4daa87 Binary files /dev/null and b/voice/hsb/voice/100_loc.ogg differ diff --git a/voice/hsb/voice/10_loc.ogg b/voice/hsb/voice/10_loc.ogg new file mode 100644 index 0000000000..017adb7bb4 Binary files /dev/null and b/voice/hsb/voice/10_loc.ogg differ diff --git a/voice/hsb/voice/10th.ogg b/voice/hsb/voice/10th.ogg new file mode 100644 index 0000000000..f234576b0d Binary files /dev/null and b/voice/hsb/voice/10th.ogg differ diff --git a/voice/hsb/voice/10th_inst.ogg b/voice/hsb/voice/10th_inst.ogg new file mode 100644 index 0000000000..66cfb8da94 Binary files /dev/null and b/voice/hsb/voice/10th_inst.ogg differ diff --git a/voice/hsb/voice/11.ogg b/voice/hsb/voice/11.ogg new file mode 100644 index 0000000000..99b122357a Binary files /dev/null and b/voice/hsb/voice/11.ogg differ diff --git a/voice/hsb/voice/110.ogg b/voice/hsb/voice/110.ogg new file mode 100644 index 0000000000..c3af4d55ab Binary files /dev/null and b/voice/hsb/voice/110.ogg differ diff --git a/voice/hsb/voice/11_loc.ogg b/voice/hsb/voice/11_loc.ogg new file mode 100644 index 0000000000..6630539ae1 Binary files /dev/null and b/voice/hsb/voice/11_loc.ogg differ diff --git a/voice/hsb/voice/11th.ogg b/voice/hsb/voice/11th.ogg new file mode 100644 index 0000000000..88c4cb3abf Binary files /dev/null and b/voice/hsb/voice/11th.ogg differ diff --git a/voice/hsb/voice/11th_inst.ogg b/voice/hsb/voice/11th_inst.ogg new file mode 100644 index 0000000000..37c207735d Binary files /dev/null and b/voice/hsb/voice/11th_inst.ogg differ diff --git a/voice/hsb/voice/12.ogg b/voice/hsb/voice/12.ogg new file mode 100644 index 0000000000..97a8017389 Binary files /dev/null and b/voice/hsb/voice/12.ogg differ diff --git a/voice/hsb/voice/120.ogg b/voice/hsb/voice/120.ogg new file mode 100644 index 0000000000..9b7ab37dfa Binary files /dev/null and b/voice/hsb/voice/120.ogg differ diff --git a/voice/hsb/voice/12_loc.ogg b/voice/hsb/voice/12_loc.ogg new file mode 100644 index 0000000000..cfae25bf93 Binary files /dev/null and b/voice/hsb/voice/12_loc.ogg differ diff --git a/voice/hsb/voice/12th.ogg b/voice/hsb/voice/12th.ogg new file mode 100644 index 0000000000..cf74c418d8 Binary files /dev/null and b/voice/hsb/voice/12th.ogg differ diff --git a/voice/hsb/voice/12th_inst.ogg b/voice/hsb/voice/12th_inst.ogg new file mode 100644 index 0000000000..d3c28d7d3c Binary files /dev/null and b/voice/hsb/voice/12th_inst.ogg differ diff --git a/voice/hsb/voice/13.ogg b/voice/hsb/voice/13.ogg new file mode 100644 index 0000000000..5ea930e650 Binary files /dev/null and b/voice/hsb/voice/13.ogg differ diff --git a/voice/hsb/voice/130.ogg b/voice/hsb/voice/130.ogg new file mode 100644 index 0000000000..1b6ae58e85 Binary files /dev/null and b/voice/hsb/voice/130.ogg differ diff --git a/voice/hsb/voice/13_loc.ogg b/voice/hsb/voice/13_loc.ogg new file mode 100644 index 0000000000..5ceffa09d5 Binary files /dev/null and b/voice/hsb/voice/13_loc.ogg differ diff --git a/voice/hsb/voice/13th.ogg b/voice/hsb/voice/13th.ogg new file mode 100644 index 0000000000..d6943d215e Binary files /dev/null and b/voice/hsb/voice/13th.ogg differ diff --git a/voice/hsb/voice/13th_inst.ogg b/voice/hsb/voice/13th_inst.ogg new file mode 100644 index 0000000000..77621cd9fa Binary files /dev/null and b/voice/hsb/voice/13th_inst.ogg differ diff --git a/voice/hsb/voice/14.ogg b/voice/hsb/voice/14.ogg new file mode 100644 index 0000000000..4c94b55b7e Binary files /dev/null and b/voice/hsb/voice/14.ogg differ diff --git a/voice/hsb/voice/140.ogg b/voice/hsb/voice/140.ogg new file mode 100644 index 0000000000..1179736aec Binary files /dev/null and b/voice/hsb/voice/140.ogg differ diff --git a/voice/hsb/voice/14_loc.ogg b/voice/hsb/voice/14_loc.ogg new file mode 100644 index 0000000000..a1051796d1 Binary files /dev/null and b/voice/hsb/voice/14_loc.ogg differ diff --git a/voice/hsb/voice/14th.ogg b/voice/hsb/voice/14th.ogg new file mode 100644 index 0000000000..d3be75b79d Binary files /dev/null and b/voice/hsb/voice/14th.ogg differ diff --git a/voice/hsb/voice/14th_inst.ogg b/voice/hsb/voice/14th_inst.ogg new file mode 100644 index 0000000000..74074f9115 Binary files /dev/null and b/voice/hsb/voice/14th_inst.ogg differ diff --git a/voice/hsb/voice/15.ogg b/voice/hsb/voice/15.ogg new file mode 100644 index 0000000000..2a797871a9 Binary files /dev/null and b/voice/hsb/voice/15.ogg differ diff --git a/voice/hsb/voice/150.ogg b/voice/hsb/voice/150.ogg new file mode 100644 index 0000000000..78d7c15d8a Binary files /dev/null and b/voice/hsb/voice/150.ogg differ diff --git a/voice/hsb/voice/150_loc.ogg b/voice/hsb/voice/150_loc.ogg new file mode 100644 index 0000000000..78d7c15d8a Binary files /dev/null and b/voice/hsb/voice/150_loc.ogg differ diff --git a/voice/hsb/voice/15_loc.ogg b/voice/hsb/voice/15_loc.ogg new file mode 100644 index 0000000000..2a797871a9 Binary files /dev/null and b/voice/hsb/voice/15_loc.ogg differ diff --git a/voice/hsb/voice/15th.ogg b/voice/hsb/voice/15th.ogg new file mode 100644 index 0000000000..47ad35e181 Binary files /dev/null and b/voice/hsb/voice/15th.ogg differ diff --git a/voice/hsb/voice/15th_inst.ogg b/voice/hsb/voice/15th_inst.ogg new file mode 100644 index 0000000000..5c1f71ecbf Binary files /dev/null and b/voice/hsb/voice/15th_inst.ogg differ diff --git a/voice/hsb/voice/16.ogg b/voice/hsb/voice/16.ogg new file mode 100644 index 0000000000..89ac07a6fc Binary files /dev/null and b/voice/hsb/voice/16.ogg differ diff --git a/voice/hsb/voice/16_loc.ogg b/voice/hsb/voice/16_loc.ogg new file mode 100644 index 0000000000..9aae9fe090 Binary files /dev/null and b/voice/hsb/voice/16_loc.ogg differ diff --git a/voice/hsb/voice/16th.ogg b/voice/hsb/voice/16th.ogg new file mode 100644 index 0000000000..308c95808f Binary files /dev/null and b/voice/hsb/voice/16th.ogg differ diff --git a/voice/hsb/voice/16th_inst.ogg b/voice/hsb/voice/16th_inst.ogg new file mode 100644 index 0000000000..7d37c78d4c Binary files /dev/null and b/voice/hsb/voice/16th_inst.ogg differ diff --git a/voice/hsb/voice/17.ogg b/voice/hsb/voice/17.ogg new file mode 100644 index 0000000000..1ec552b31c Binary files /dev/null and b/voice/hsb/voice/17.ogg differ diff --git a/voice/hsb/voice/17_loc.ogg b/voice/hsb/voice/17_loc.ogg new file mode 100644 index 0000000000..1ec552b31c Binary files /dev/null and b/voice/hsb/voice/17_loc.ogg differ diff --git a/voice/hsb/voice/17th.ogg b/voice/hsb/voice/17th.ogg new file mode 100644 index 0000000000..56d8ed60ad Binary files /dev/null and b/voice/hsb/voice/17th.ogg differ diff --git a/voice/hsb/voice/17th_inst.ogg b/voice/hsb/voice/17th_inst.ogg new file mode 100644 index 0000000000..da57b30b10 Binary files /dev/null and b/voice/hsb/voice/17th_inst.ogg differ diff --git a/voice/hsb/voice/18.ogg b/voice/hsb/voice/18.ogg new file mode 100644 index 0000000000..99188d40cf Binary files /dev/null and b/voice/hsb/voice/18.ogg differ diff --git a/voice/hsb/voice/18_loc.ogg b/voice/hsb/voice/18_loc.ogg new file mode 100644 index 0000000000..3f6f79a56c Binary files /dev/null and b/voice/hsb/voice/18_loc.ogg differ diff --git a/voice/hsb/voice/19.ogg b/voice/hsb/voice/19.ogg new file mode 100644 index 0000000000..a40a2265b5 Binary files /dev/null and b/voice/hsb/voice/19.ogg differ diff --git a/voice/hsb/voice/19_loc.ogg b/voice/hsb/voice/19_loc.ogg new file mode 100644 index 0000000000..a40a2265b5 Binary files /dev/null and b/voice/hsb/voice/19_loc.ogg differ diff --git a/voice/hsb/voice/1_hour.ogg b/voice/hsb/voice/1_hour.ogg new file mode 100644 index 0000000000..64f3aeb040 Binary files /dev/null and b/voice/hsb/voice/1_hour.ogg differ diff --git a/voice/hsb/voice/1_loc.ogg b/voice/hsb/voice/1_loc.ogg new file mode 100644 index 0000000000..8aa8c798cd Binary files /dev/null and b/voice/hsb/voice/1_loc.ogg differ diff --git a/voice/hsb/voice/1_minute.ogg b/voice/hsb/voice/1_minute.ogg new file mode 100644 index 0000000000..261a732d42 Binary files /dev/null and b/voice/hsb/voice/1_minute.ogg differ diff --git a/voice/hsb/voice/1_tenth_of_a_mile_accusative.ogg b/voice/hsb/voice/1_tenth_of_a_mile_accusative.ogg new file mode 100644 index 0000000000..efec432659 Binary files /dev/null and b/voice/hsb/voice/1_tenth_of_a_mile_accusative.ogg differ diff --git a/voice/hsb/voice/1_tenth_of_a_mile_locative.ogg b/voice/hsb/voice/1_tenth_of_a_mile_locative.ogg new file mode 100644 index 0000000000..6759614c94 Binary files /dev/null and b/voice/hsb/voice/1_tenth_of_a_mile_locative.ogg differ diff --git a/voice/hsb/voice/1st.ogg b/voice/hsb/voice/1st.ogg new file mode 100644 index 0000000000..f7f7160f2b Binary files /dev/null and b/voice/hsb/voice/1st.ogg differ diff --git a/voice/hsb/voice/1st_inst.ogg b/voice/hsb/voice/1st_inst.ogg new file mode 100644 index 0000000000..09c8c8e917 Binary files /dev/null and b/voice/hsb/voice/1st_inst.ogg differ diff --git a/voice/hsb/voice/2.ogg b/voice/hsb/voice/2.ogg new file mode 100644 index 0000000000..230e03b8c4 Binary files /dev/null and b/voice/hsb/voice/2.ogg differ diff --git a/voice/hsb/voice/20.ogg b/voice/hsb/voice/20.ogg new file mode 100644 index 0000000000..14597b5792 Binary files /dev/null and b/voice/hsb/voice/20.ogg differ diff --git a/voice/hsb/voice/200.ogg b/voice/hsb/voice/200.ogg new file mode 100644 index 0000000000..dd5b4f426d Binary files /dev/null and b/voice/hsb/voice/200.ogg differ diff --git a/voice/hsb/voice/2000.ogg b/voice/hsb/voice/2000.ogg new file mode 100644 index 0000000000..e670efa24b Binary files /dev/null and b/voice/hsb/voice/2000.ogg differ diff --git a/voice/hsb/voice/2000_loc.ogg b/voice/hsb/voice/2000_loc.ogg new file mode 100644 index 0000000000..f95461fb4f Binary files /dev/null and b/voice/hsb/voice/2000_loc.ogg differ diff --git a/voice/hsb/voice/200_loc.ogg b/voice/hsb/voice/200_loc.ogg new file mode 100644 index 0000000000..7617b8e122 Binary files /dev/null and b/voice/hsb/voice/200_loc.ogg differ diff --git a/voice/hsb/voice/20_loc.ogg b/voice/hsb/voice/20_loc.ogg new file mode 100644 index 0000000000..14597b5792 Binary files /dev/null and b/voice/hsb/voice/20_loc.ogg differ diff --git a/voice/hsb/voice/25.ogg b/voice/hsb/voice/25.ogg new file mode 100644 index 0000000000..c226b44652 Binary files /dev/null and b/voice/hsb/voice/25.ogg differ diff --git a/voice/hsb/voice/250.ogg b/voice/hsb/voice/250.ogg new file mode 100644 index 0000000000..4760fa2c92 Binary files /dev/null and b/voice/hsb/voice/250.ogg differ diff --git a/voice/hsb/voice/250_loc.ogg b/voice/hsb/voice/250_loc.ogg new file mode 100644 index 0000000000..d0ddcfe3ef Binary files /dev/null and b/voice/hsb/voice/250_loc.ogg differ diff --git a/voice/hsb/voice/25_loc.ogg b/voice/hsb/voice/25_loc.ogg new file mode 100644 index 0000000000..55ccd047ad Binary files /dev/null and b/voice/hsb/voice/25_loc.ogg differ diff --git a/voice/hsb/voice/2_hours.ogg b/voice/hsb/voice/2_hours.ogg new file mode 100644 index 0000000000..940b4efc10 Binary files /dev/null and b/voice/hsb/voice/2_hours.ogg differ diff --git a/voice/hsb/voice/2_loc.ogg b/voice/hsb/voice/2_loc.ogg new file mode 100644 index 0000000000..da83d69888 Binary files /dev/null and b/voice/hsb/voice/2_loc.ogg differ diff --git a/voice/hsb/voice/2_minutes.ogg b/voice/hsb/voice/2_minutes.ogg new file mode 100644 index 0000000000..dba5583d5f Binary files /dev/null and b/voice/hsb/voice/2_minutes.ogg differ diff --git a/voice/hsb/voice/2nd.ogg b/voice/hsb/voice/2nd.ogg new file mode 100644 index 0000000000..e8c83561b1 Binary files /dev/null and b/voice/hsb/voice/2nd.ogg differ diff --git a/voice/hsb/voice/2nd_inst.ogg b/voice/hsb/voice/2nd_inst.ogg new file mode 100644 index 0000000000..b1aec6b8b4 Binary files /dev/null and b/voice/hsb/voice/2nd_inst.ogg differ diff --git a/voice/hsb/voice/3.ogg b/voice/hsb/voice/3.ogg new file mode 100644 index 0000000000..b933fcaeaf Binary files /dev/null and b/voice/hsb/voice/3.ogg differ diff --git a/voice/hsb/voice/30.ogg b/voice/hsb/voice/30.ogg new file mode 100644 index 0000000000..a0e5187fae Binary files /dev/null and b/voice/hsb/voice/30.ogg differ diff --git a/voice/hsb/voice/300.ogg b/voice/hsb/voice/300.ogg new file mode 100644 index 0000000000..8ded2cb7a3 Binary files /dev/null and b/voice/hsb/voice/300.ogg differ diff --git a/voice/hsb/voice/3000.ogg b/voice/hsb/voice/3000.ogg new file mode 100644 index 0000000000..74ab45970e Binary files /dev/null and b/voice/hsb/voice/3000.ogg differ diff --git a/voice/hsb/voice/3000_loc.ogg b/voice/hsb/voice/3000_loc.ogg new file mode 100644 index 0000000000..b43e6b424e Binary files /dev/null and b/voice/hsb/voice/3000_loc.ogg differ diff --git a/voice/hsb/voice/300_loc.ogg b/voice/hsb/voice/300_loc.ogg new file mode 100644 index 0000000000..5a605e5092 Binary files /dev/null and b/voice/hsb/voice/300_loc.ogg differ diff --git a/voice/hsb/voice/30_loc.ogg b/voice/hsb/voice/30_loc.ogg new file mode 100644 index 0000000000..304b0569c2 Binary files /dev/null and b/voice/hsb/voice/30_loc.ogg differ diff --git a/voice/hsb/voice/35.ogg b/voice/hsb/voice/35.ogg new file mode 100644 index 0000000000..6e215d9fe3 Binary files /dev/null and b/voice/hsb/voice/35.ogg differ diff --git a/voice/hsb/voice/350.ogg b/voice/hsb/voice/350.ogg new file mode 100644 index 0000000000..6b7ee54861 Binary files /dev/null and b/voice/hsb/voice/350.ogg differ diff --git a/voice/hsb/voice/350_loc.ogg b/voice/hsb/voice/350_loc.ogg new file mode 100644 index 0000000000..8ba70ca053 Binary files /dev/null and b/voice/hsb/voice/350_loc.ogg differ diff --git a/voice/hsb/voice/35_loc.ogg b/voice/hsb/voice/35_loc.ogg new file mode 100644 index 0000000000..ca235029e1 Binary files /dev/null and b/voice/hsb/voice/35_loc.ogg differ diff --git a/voice/hsb/voice/3_4_hours.ogg b/voice/hsb/voice/3_4_hours.ogg new file mode 100644 index 0000000000..a0d6118729 Binary files /dev/null and b/voice/hsb/voice/3_4_hours.ogg differ diff --git a/voice/hsb/voice/3_4_minutes.ogg b/voice/hsb/voice/3_4_minutes.ogg new file mode 100644 index 0000000000..edebcdff9f Binary files /dev/null and b/voice/hsb/voice/3_4_minutes.ogg differ diff --git a/voice/hsb/voice/3_loc.ogg b/voice/hsb/voice/3_loc.ogg new file mode 100644 index 0000000000..db1fb12c40 Binary files /dev/null and b/voice/hsb/voice/3_loc.ogg differ diff --git a/voice/hsb/voice/3rd.ogg b/voice/hsb/voice/3rd.ogg new file mode 100644 index 0000000000..bd153c017a Binary files /dev/null and b/voice/hsb/voice/3rd.ogg differ diff --git a/voice/hsb/voice/3rd_inst.ogg b/voice/hsb/voice/3rd_inst.ogg new file mode 100644 index 0000000000..97675be725 Binary files /dev/null and b/voice/hsb/voice/3rd_inst.ogg differ diff --git a/voice/hsb/voice/4.ogg b/voice/hsb/voice/4.ogg new file mode 100644 index 0000000000..c6b683f070 Binary files /dev/null and b/voice/hsb/voice/4.ogg differ diff --git a/voice/hsb/voice/40.ogg b/voice/hsb/voice/40.ogg new file mode 100644 index 0000000000..bbda92aa07 Binary files /dev/null and b/voice/hsb/voice/40.ogg differ diff --git a/voice/hsb/voice/400.ogg b/voice/hsb/voice/400.ogg new file mode 100644 index 0000000000..1700062b7f Binary files /dev/null and b/voice/hsb/voice/400.ogg differ diff --git a/voice/hsb/voice/4000.ogg b/voice/hsb/voice/4000.ogg new file mode 100644 index 0000000000..49ddf9865f Binary files /dev/null and b/voice/hsb/voice/4000.ogg differ diff --git a/voice/hsb/voice/4000_loc.ogg b/voice/hsb/voice/4000_loc.ogg new file mode 100644 index 0000000000..246b6eb3b0 Binary files /dev/null and b/voice/hsb/voice/4000_loc.ogg differ diff --git a/voice/hsb/voice/400_loc.ogg b/voice/hsb/voice/400_loc.ogg new file mode 100644 index 0000000000..51f9ae6dbf Binary files /dev/null and b/voice/hsb/voice/400_loc.ogg differ diff --git a/voice/hsb/voice/40_loc.ogg b/voice/hsb/voice/40_loc.ogg new file mode 100644 index 0000000000..48a07f3015 Binary files /dev/null and b/voice/hsb/voice/40_loc.ogg differ diff --git a/voice/hsb/voice/45.ogg b/voice/hsb/voice/45.ogg new file mode 100644 index 0000000000..2de4a92dc3 Binary files /dev/null and b/voice/hsb/voice/45.ogg differ diff --git a/voice/hsb/voice/450.ogg b/voice/hsb/voice/450.ogg new file mode 100644 index 0000000000..18553efa1e Binary files /dev/null and b/voice/hsb/voice/450.ogg differ diff --git a/voice/hsb/voice/450_loc.ogg b/voice/hsb/voice/450_loc.ogg new file mode 100644 index 0000000000..3b695bfb46 Binary files /dev/null and b/voice/hsb/voice/450_loc.ogg differ diff --git a/voice/hsb/voice/45_loc.ogg b/voice/hsb/voice/45_loc.ogg new file mode 100644 index 0000000000..d4ff6599cb Binary files /dev/null and b/voice/hsb/voice/45_loc.ogg differ diff --git a/voice/hsb/voice/4_loc.ogg b/voice/hsb/voice/4_loc.ogg new file mode 100644 index 0000000000..9905e17b4c Binary files /dev/null and b/voice/hsb/voice/4_loc.ogg differ diff --git a/voice/hsb/voice/4th.ogg b/voice/hsb/voice/4th.ogg new file mode 100644 index 0000000000..88cad4eb59 Binary files /dev/null and b/voice/hsb/voice/4th.ogg differ diff --git a/voice/hsb/voice/4th_inst.ogg b/voice/hsb/voice/4th_inst.ogg new file mode 100644 index 0000000000..b622c4a49d Binary files /dev/null and b/voice/hsb/voice/4th_inst.ogg differ diff --git a/voice/hsb/voice/5.ogg b/voice/hsb/voice/5.ogg new file mode 100644 index 0000000000..eb12ce78af Binary files /dev/null and b/voice/hsb/voice/5.ogg differ diff --git a/voice/hsb/voice/50.ogg b/voice/hsb/voice/50.ogg new file mode 100644 index 0000000000..4ffb491aa5 Binary files /dev/null and b/voice/hsb/voice/50.ogg differ diff --git a/voice/hsb/voice/500.ogg b/voice/hsb/voice/500.ogg new file mode 100644 index 0000000000..12ac2664ac Binary files /dev/null and b/voice/hsb/voice/500.ogg differ diff --git a/voice/hsb/voice/5000.ogg b/voice/hsb/voice/5000.ogg new file mode 100644 index 0000000000..507d67f987 Binary files /dev/null and b/voice/hsb/voice/5000.ogg differ diff --git a/voice/hsb/voice/5000_loc.ogg b/voice/hsb/voice/5000_loc.ogg new file mode 100644 index 0000000000..0d12224f56 Binary files /dev/null and b/voice/hsb/voice/5000_loc.ogg differ diff --git a/voice/hsb/voice/500_loc.ogg b/voice/hsb/voice/500_loc.ogg new file mode 100644 index 0000000000..e01f42a66d Binary files /dev/null and b/voice/hsb/voice/500_loc.ogg differ diff --git a/voice/hsb/voice/50_loc.ogg b/voice/hsb/voice/50_loc.ogg new file mode 100644 index 0000000000..4beb32f045 Binary files /dev/null and b/voice/hsb/voice/50_loc.ogg differ diff --git a/voice/hsb/voice/55.ogg b/voice/hsb/voice/55.ogg new file mode 100644 index 0000000000..0f0d16945d Binary files /dev/null and b/voice/hsb/voice/55.ogg differ diff --git a/voice/hsb/voice/550.ogg b/voice/hsb/voice/550.ogg new file mode 100644 index 0000000000..5ae4f4b4c4 Binary files /dev/null and b/voice/hsb/voice/550.ogg differ diff --git a/voice/hsb/voice/550_loc.ogg b/voice/hsb/voice/550_loc.ogg new file mode 100644 index 0000000000..9e1f8798a1 Binary files /dev/null and b/voice/hsb/voice/550_loc.ogg differ diff --git a/voice/hsb/voice/55_loc.ogg b/voice/hsb/voice/55_loc.ogg new file mode 100644 index 0000000000..636488c33a Binary files /dev/null and b/voice/hsb/voice/55_loc.ogg differ diff --git a/voice/hsb/voice/5_loc.ogg b/voice/hsb/voice/5_loc.ogg new file mode 100644 index 0000000000..8e755c5dd5 Binary files /dev/null and b/voice/hsb/voice/5_loc.ogg differ diff --git a/voice/hsb/voice/5th.ogg b/voice/hsb/voice/5th.ogg new file mode 100644 index 0000000000..07fec1ecb5 Binary files /dev/null and b/voice/hsb/voice/5th.ogg differ diff --git a/voice/hsb/voice/5th_inst.ogg b/voice/hsb/voice/5th_inst.ogg new file mode 100644 index 0000000000..f8c5f4d944 Binary files /dev/null and b/voice/hsb/voice/5th_inst.ogg differ diff --git a/voice/hsb/voice/6.ogg b/voice/hsb/voice/6.ogg new file mode 100644 index 0000000000..cd296e6e47 Binary files /dev/null and b/voice/hsb/voice/6.ogg differ diff --git a/voice/hsb/voice/60.ogg b/voice/hsb/voice/60.ogg new file mode 100644 index 0000000000..495266e59e Binary files /dev/null and b/voice/hsb/voice/60.ogg differ diff --git a/voice/hsb/voice/600.ogg b/voice/hsb/voice/600.ogg new file mode 100644 index 0000000000..7fee296119 Binary files /dev/null and b/voice/hsb/voice/600.ogg differ diff --git a/voice/hsb/voice/6000.ogg b/voice/hsb/voice/6000.ogg new file mode 100644 index 0000000000..52e64925a0 Binary files /dev/null and b/voice/hsb/voice/6000.ogg differ diff --git a/voice/hsb/voice/6000_loc.ogg b/voice/hsb/voice/6000_loc.ogg new file mode 100644 index 0000000000..fcf9f0f00c Binary files /dev/null and b/voice/hsb/voice/6000_loc.ogg differ diff --git a/voice/hsb/voice/600_loc.ogg b/voice/hsb/voice/600_loc.ogg new file mode 100644 index 0000000000..82671588f7 Binary files /dev/null and b/voice/hsb/voice/600_loc.ogg differ diff --git a/voice/hsb/voice/60_loc.ogg b/voice/hsb/voice/60_loc.ogg new file mode 100644 index 0000000000..638a8496a5 Binary files /dev/null and b/voice/hsb/voice/60_loc.ogg differ diff --git a/voice/hsb/voice/65.ogg b/voice/hsb/voice/65.ogg new file mode 100644 index 0000000000..8d83ffd70f Binary files /dev/null and b/voice/hsb/voice/65.ogg differ diff --git a/voice/hsb/voice/650.ogg b/voice/hsb/voice/650.ogg new file mode 100644 index 0000000000..a7a2d38d66 Binary files /dev/null and b/voice/hsb/voice/650.ogg differ diff --git a/voice/hsb/voice/650_loc.ogg b/voice/hsb/voice/650_loc.ogg new file mode 100644 index 0000000000..29b98652b8 Binary files /dev/null and b/voice/hsb/voice/650_loc.ogg differ diff --git a/voice/hsb/voice/65_loc.ogg b/voice/hsb/voice/65_loc.ogg new file mode 100644 index 0000000000..25b3b4f245 Binary files /dev/null and b/voice/hsb/voice/65_loc.ogg differ diff --git a/voice/hsb/voice/6_loc.ogg b/voice/hsb/voice/6_loc.ogg new file mode 100644 index 0000000000..4648eaf1ba Binary files /dev/null and b/voice/hsb/voice/6_loc.ogg differ diff --git a/voice/hsb/voice/6th.ogg b/voice/hsb/voice/6th.ogg new file mode 100644 index 0000000000..4bec3580d0 Binary files /dev/null and b/voice/hsb/voice/6th.ogg differ diff --git a/voice/hsb/voice/6th_inst.ogg b/voice/hsb/voice/6th_inst.ogg new file mode 100644 index 0000000000..412e5ee788 Binary files /dev/null and b/voice/hsb/voice/6th_inst.ogg differ diff --git a/voice/hsb/voice/7.ogg b/voice/hsb/voice/7.ogg new file mode 100644 index 0000000000..154e96b2da Binary files /dev/null and b/voice/hsb/voice/7.ogg differ diff --git a/voice/hsb/voice/70.ogg b/voice/hsb/voice/70.ogg new file mode 100644 index 0000000000..abb25cd56a Binary files /dev/null and b/voice/hsb/voice/70.ogg differ diff --git a/voice/hsb/voice/700.ogg b/voice/hsb/voice/700.ogg new file mode 100644 index 0000000000..679c620145 Binary files /dev/null and b/voice/hsb/voice/700.ogg differ diff --git a/voice/hsb/voice/7000.ogg b/voice/hsb/voice/7000.ogg new file mode 100644 index 0000000000..2598181309 Binary files /dev/null and b/voice/hsb/voice/7000.ogg differ diff --git a/voice/hsb/voice/7000_loc.ogg b/voice/hsb/voice/7000_loc.ogg new file mode 100644 index 0000000000..25b2ab5718 Binary files /dev/null and b/voice/hsb/voice/7000_loc.ogg differ diff --git a/voice/hsb/voice/700_loc.ogg b/voice/hsb/voice/700_loc.ogg new file mode 100644 index 0000000000..00ba8b177b Binary files /dev/null and b/voice/hsb/voice/700_loc.ogg differ diff --git a/voice/hsb/voice/70_loc.ogg b/voice/hsb/voice/70_loc.ogg new file mode 100644 index 0000000000..6252955439 Binary files /dev/null and b/voice/hsb/voice/70_loc.ogg differ diff --git a/voice/hsb/voice/75.ogg b/voice/hsb/voice/75.ogg new file mode 100644 index 0000000000..0d861ec7ca Binary files /dev/null and b/voice/hsb/voice/75.ogg differ diff --git a/voice/hsb/voice/750.ogg b/voice/hsb/voice/750.ogg new file mode 100644 index 0000000000..6a201df91a Binary files /dev/null and b/voice/hsb/voice/750.ogg differ diff --git a/voice/hsb/voice/750_loc.ogg b/voice/hsb/voice/750_loc.ogg new file mode 100644 index 0000000000..3f52979012 Binary files /dev/null and b/voice/hsb/voice/750_loc.ogg differ diff --git a/voice/hsb/voice/75_loc.ogg b/voice/hsb/voice/75_loc.ogg new file mode 100644 index 0000000000..3e4c1d1230 Binary files /dev/null and b/voice/hsb/voice/75_loc.ogg differ diff --git a/voice/hsb/voice/7_loc.ogg b/voice/hsb/voice/7_loc.ogg new file mode 100644 index 0000000000..27325c6a67 Binary files /dev/null and b/voice/hsb/voice/7_loc.ogg differ diff --git a/voice/hsb/voice/7th.ogg b/voice/hsb/voice/7th.ogg new file mode 100644 index 0000000000..71db564700 Binary files /dev/null and b/voice/hsb/voice/7th.ogg differ diff --git a/voice/hsb/voice/7th_inst.ogg b/voice/hsb/voice/7th_inst.ogg new file mode 100644 index 0000000000..49777593fd Binary files /dev/null and b/voice/hsb/voice/7th_inst.ogg differ diff --git a/voice/hsb/voice/8.ogg b/voice/hsb/voice/8.ogg new file mode 100644 index 0000000000..a7b853d585 Binary files /dev/null and b/voice/hsb/voice/8.ogg differ diff --git a/voice/hsb/voice/80.ogg b/voice/hsb/voice/80.ogg new file mode 100644 index 0000000000..06d1aeb1f8 Binary files /dev/null and b/voice/hsb/voice/80.ogg differ diff --git a/voice/hsb/voice/800.ogg b/voice/hsb/voice/800.ogg new file mode 100644 index 0000000000..8d335e0d10 Binary files /dev/null and b/voice/hsb/voice/800.ogg differ diff --git a/voice/hsb/voice/8000.ogg b/voice/hsb/voice/8000.ogg new file mode 100644 index 0000000000..d01d287e04 Binary files /dev/null and b/voice/hsb/voice/8000.ogg differ diff --git a/voice/hsb/voice/8000_loc.ogg b/voice/hsb/voice/8000_loc.ogg new file mode 100644 index 0000000000..90ed236c70 Binary files /dev/null and b/voice/hsb/voice/8000_loc.ogg differ diff --git a/voice/hsb/voice/800_loc.ogg b/voice/hsb/voice/800_loc.ogg new file mode 100644 index 0000000000..b334dae673 Binary files /dev/null and b/voice/hsb/voice/800_loc.ogg differ diff --git a/voice/hsb/voice/80_loc.ogg b/voice/hsb/voice/80_loc.ogg new file mode 100644 index 0000000000..4bda017d0d Binary files /dev/null and b/voice/hsb/voice/80_loc.ogg differ diff --git a/voice/hsb/voice/85.ogg b/voice/hsb/voice/85.ogg new file mode 100644 index 0000000000..4f464227d2 Binary files /dev/null and b/voice/hsb/voice/85.ogg differ diff --git a/voice/hsb/voice/850.ogg b/voice/hsb/voice/850.ogg new file mode 100644 index 0000000000..f855306971 Binary files /dev/null and b/voice/hsb/voice/850.ogg differ diff --git a/voice/hsb/voice/850_loc.ogg b/voice/hsb/voice/850_loc.ogg new file mode 100644 index 0000000000..f9a6f0d33d Binary files /dev/null and b/voice/hsb/voice/850_loc.ogg differ diff --git a/voice/hsb/voice/85_loc.ogg b/voice/hsb/voice/85_loc.ogg new file mode 100644 index 0000000000..1232fe21a6 Binary files /dev/null and b/voice/hsb/voice/85_loc.ogg differ diff --git a/voice/hsb/voice/8_loc.ogg b/voice/hsb/voice/8_loc.ogg new file mode 100644 index 0000000000..67cacbcbcb Binary files /dev/null and b/voice/hsb/voice/8_loc.ogg differ diff --git a/voice/hsb/voice/8th.ogg b/voice/hsb/voice/8th.ogg new file mode 100644 index 0000000000..c67183e670 Binary files /dev/null and b/voice/hsb/voice/8th.ogg differ diff --git a/voice/hsb/voice/8th_inst.ogg b/voice/hsb/voice/8th_inst.ogg new file mode 100644 index 0000000000..0b40a2f316 Binary files /dev/null and b/voice/hsb/voice/8th_inst.ogg differ diff --git a/voice/hsb/voice/9.ogg b/voice/hsb/voice/9.ogg new file mode 100644 index 0000000000..71909a3c9e Binary files /dev/null and b/voice/hsb/voice/9.ogg differ diff --git a/voice/hsb/voice/90.ogg b/voice/hsb/voice/90.ogg new file mode 100644 index 0000000000..9d0c339e52 Binary files /dev/null and b/voice/hsb/voice/90.ogg differ diff --git a/voice/hsb/voice/900.ogg b/voice/hsb/voice/900.ogg new file mode 100644 index 0000000000..0c8dcd04d6 Binary files /dev/null and b/voice/hsb/voice/900.ogg differ diff --git a/voice/hsb/voice/9000.ogg b/voice/hsb/voice/9000.ogg new file mode 100644 index 0000000000..ced555c0c3 Binary files /dev/null and b/voice/hsb/voice/9000.ogg differ diff --git a/voice/hsb/voice/9000_loc.ogg b/voice/hsb/voice/9000_loc.ogg new file mode 100644 index 0000000000..f5788bbaa8 Binary files /dev/null and b/voice/hsb/voice/9000_loc.ogg differ diff --git a/voice/hsb/voice/900_loc.ogg b/voice/hsb/voice/900_loc.ogg new file mode 100644 index 0000000000..3bab30411e Binary files /dev/null and b/voice/hsb/voice/900_loc.ogg differ diff --git a/voice/hsb/voice/90_loc.ogg b/voice/hsb/voice/90_loc.ogg new file mode 100644 index 0000000000..5ad047dd09 Binary files /dev/null and b/voice/hsb/voice/90_loc.ogg differ diff --git a/voice/hsb/voice/95.ogg b/voice/hsb/voice/95.ogg new file mode 100644 index 0000000000..34bd2c81ec Binary files /dev/null and b/voice/hsb/voice/95.ogg differ diff --git a/voice/hsb/voice/950.ogg b/voice/hsb/voice/950.ogg new file mode 100644 index 0000000000..c6083f6545 Binary files /dev/null and b/voice/hsb/voice/950.ogg differ diff --git a/voice/hsb/voice/950_loc.ogg b/voice/hsb/voice/950_loc.ogg new file mode 100644 index 0000000000..08258417e1 Binary files /dev/null and b/voice/hsb/voice/950_loc.ogg differ diff --git a/voice/hsb/voice/95_loc.ogg b/voice/hsb/voice/95_loc.ogg new file mode 100644 index 0000000000..f2dcf769eb Binary files /dev/null and b/voice/hsb/voice/95_loc.ogg differ diff --git a/voice/hsb/voice/9_loc.ogg b/voice/hsb/voice/9_loc.ogg new file mode 100644 index 0000000000..24e2dda138 Binary files /dev/null and b/voice/hsb/voice/9_loc.ogg differ diff --git a/voice/hsb/voice/9th.ogg b/voice/hsb/voice/9th.ogg new file mode 100644 index 0000000000..5ca2c5a6cf Binary files /dev/null and b/voice/hsb/voice/9th.ogg differ diff --git a/voice/hsb/voice/9th_inst.ogg b/voice/hsb/voice/9th_inst.ogg new file mode 100644 index 0000000000..3b70402c07 Binary files /dev/null and b/voice/hsb/voice/9th_inst.ogg differ diff --git a/voice/hsb/voice/after.ogg b/voice/hsb/voice/after.ogg new file mode 100644 index 0000000000..cc4c5f1143 Binary files /dev/null and b/voice/hsb/voice/after.ogg differ diff --git a/voice/hsb/voice/and.ogg b/voice/hsb/voice/and.ogg new file mode 100644 index 0000000000..0ddda8a48d Binary files /dev/null and b/voice/hsb/voice/and.ogg differ diff --git a/voice/hsb/voice/and_arrive_destination.ogg b/voice/hsb/voice/and_arrive_destination.ogg new file mode 100644 index 0000000000..474e81ed74 Binary files /dev/null and b/voice/hsb/voice/and_arrive_destination.ogg differ diff --git a/voice/hsb/voice/and_arrive_favorite.ogg b/voice/hsb/voice/and_arrive_favorite.ogg new file mode 100644 index 0000000000..a0c711e47c Binary files /dev/null and b/voice/hsb/voice/and_arrive_favorite.ogg differ diff --git a/voice/hsb/voice/and_arrive_intermediate.ogg b/voice/hsb/voice/and_arrive_intermediate.ogg new file mode 100644 index 0000000000..53a5518a4b Binary files /dev/null and b/voice/hsb/voice/and_arrive_intermediate.ogg differ diff --git a/voice/hsb/voice/and_arrive_poi.ogg b/voice/hsb/voice/and_arrive_poi.ogg new file mode 100644 index 0000000000..d638ea1d4a Binary files /dev/null and b/voice/hsb/voice/and_arrive_poi.ogg differ diff --git a/voice/hsb/voice/and_arrive_waypoint.ogg b/voice/hsb/voice/and_arrive_waypoint.ogg new file mode 100644 index 0000000000..71c77b813a Binary files /dev/null and b/voice/hsb/voice/and_arrive_waypoint.ogg differ diff --git a/voice/hsb/voice/around.ogg b/voice/hsb/voice/around.ogg new file mode 100644 index 0000000000..8bcbf0e5d8 Binary files /dev/null and b/voice/hsb/voice/around.ogg differ diff --git a/voice/hsb/voice/around_1_kilometer_accusative.ogg b/voice/hsb/voice/around_1_kilometer_accusative.ogg new file mode 100644 index 0000000000..ab4298f275 Binary files /dev/null and b/voice/hsb/voice/around_1_kilometer_accusative.ogg differ diff --git a/voice/hsb/voice/around_1_kilometer_locative.ogg b/voice/hsb/voice/around_1_kilometer_locative.ogg new file mode 100644 index 0000000000..df8f230f8f Binary files /dev/null and b/voice/hsb/voice/around_1_kilometer_locative.ogg differ diff --git a/voice/hsb/voice/around_1_mile_accusative.ogg b/voice/hsb/voice/around_1_mile_accusative.ogg new file mode 100644 index 0000000000..27a269a5ad Binary files /dev/null and b/voice/hsb/voice/around_1_mile_accusative.ogg differ diff --git a/voice/hsb/voice/around_1_mile_locative.ogg b/voice/hsb/voice/around_1_mile_locative.ogg new file mode 100644 index 0000000000..4837b707ed Binary files /dev/null and b/voice/hsb/voice/around_1_mile_locative.ogg differ diff --git a/voice/hsb/voice/around_workaround.ogg b/voice/hsb/voice/around_workaround.ogg new file mode 100644 index 0000000000..db2019bd5a Binary files /dev/null and b/voice/hsb/voice/around_workaround.ogg differ diff --git a/voice/hsb/voice/attention.ogg b/voice/hsb/voice/attention.ogg new file mode 100644 index 0000000000..d9a067a09f Binary files /dev/null and b/voice/hsb/voice/attention.ogg differ diff --git a/voice/hsb/voice/back_on_route.ogg b/voice/hsb/voice/back_on_route.ogg new file mode 100644 index 0000000000..27cfc9d6e2 Binary files /dev/null and b/voice/hsb/voice/back_on_route.ogg differ diff --git a/voice/hsb/voice/border_control.ogg b/voice/hsb/voice/border_control.ogg new file mode 100644 index 0000000000..248ec937af Binary files /dev/null and b/voice/hsb/voice/border_control.ogg differ diff --git a/voice/hsb/voice/distance.ogg b/voice/hsb/voice/distance.ogg new file mode 100644 index 0000000000..a1db5b8861 Binary files /dev/null and b/voice/hsb/voice/distance.ogg differ diff --git a/voice/hsb/voice/exceed_limit.ogg b/voice/hsb/voice/exceed_limit.ogg new file mode 100644 index 0000000000..6c8761c207 Binary files /dev/null and b/voice/hsb/voice/exceed_limit.ogg differ diff --git a/voice/hsb/voice/exit.ogg b/voice/hsb/voice/exit.ogg new file mode 100644 index 0000000000..1501e3bd93 Binary files /dev/null and b/voice/hsb/voice/exit.ogg differ diff --git a/voice/hsb/voice/exit2.ogg b/voice/hsb/voice/exit2.ogg new file mode 100644 index 0000000000..49dc4d8a15 Binary files /dev/null and b/voice/hsb/voice/exit2.ogg differ diff --git a/voice/hsb/voice/farther_workaround.ogg b/voice/hsb/voice/farther_workaround.ogg new file mode 100644 index 0000000000..56e2f7893d Binary files /dev/null and b/voice/hsb/voice/farther_workaround.ogg differ diff --git a/voice/hsb/voice/feet_accusative.ogg b/voice/hsb/voice/feet_accusative.ogg new file mode 100644 index 0000000000..f4ebeb6fbc Binary files /dev/null and b/voice/hsb/voice/feet_accusative.ogg differ diff --git a/voice/hsb/voice/feet_locative.ogg b/voice/hsb/voice/feet_locative.ogg new file mode 100644 index 0000000000..8922f7a445 Binary files /dev/null and b/voice/hsb/voice/feet_locative.ogg differ diff --git a/voice/hsb/voice/go_ahead.ogg b/voice/hsb/voice/go_ahead.ogg new file mode 100644 index 0000000000..bab5322495 Binary files /dev/null and b/voice/hsb/voice/go_ahead.ogg differ diff --git a/voice/hsb/voice/go_ahead_m.ogg b/voice/hsb/voice/go_ahead_m.ogg new file mode 100644 index 0000000000..18c8bf11a6 Binary files /dev/null and b/voice/hsb/voice/go_ahead_m.ogg differ diff --git a/voice/hsb/voice/hours.ogg b/voice/hsb/voice/hours.ogg new file mode 100644 index 0000000000..76c3b3c133 Binary files /dev/null and b/voice/hsb/voice/hours.ogg differ diff --git a/voice/hsb/voice/in.ogg b/voice/hsb/voice/in.ogg new file mode 100644 index 0000000000..5711e1bfbd Binary files /dev/null and b/voice/hsb/voice/in.ogg differ diff --git a/voice/hsb/voice/kilometers_accusative2.ogg b/voice/hsb/voice/kilometers_accusative2.ogg new file mode 100644 index 0000000000..da60eadee7 Binary files /dev/null and b/voice/hsb/voice/kilometers_accusative2.ogg differ diff --git a/voice/hsb/voice/kilometers_accusative3_4.ogg b/voice/hsb/voice/kilometers_accusative3_4.ogg new file mode 100644 index 0000000000..fe2f79c3f0 Binary files /dev/null and b/voice/hsb/voice/kilometers_accusative3_4.ogg differ diff --git a/voice/hsb/voice/kilometers_accusative5.ogg b/voice/hsb/voice/kilometers_accusative5.ogg new file mode 100644 index 0000000000..db59b304b9 Binary files /dev/null and b/voice/hsb/voice/kilometers_accusative5.ogg differ diff --git a/voice/hsb/voice/kilometers_locative.ogg b/voice/hsb/voice/kilometers_locative.ogg new file mode 100644 index 0000000000..3685933736 Binary files /dev/null and b/voice/hsb/voice/kilometers_locative.ogg differ diff --git a/voice/hsb/voice/kilometers_locative2.ogg b/voice/hsb/voice/kilometers_locative2.ogg new file mode 100644 index 0000000000..5979149dfb Binary files /dev/null and b/voice/hsb/voice/kilometers_locative2.ogg differ diff --git a/voice/hsb/voice/left.ogg b/voice/hsb/voice/left.ogg new file mode 100644 index 0000000000..94a60a0331 Binary files /dev/null and b/voice/hsb/voice/left.ogg differ diff --git a/voice/hsb/voice/left_bear.ogg b/voice/hsb/voice/left_bear.ogg new file mode 100644 index 0000000000..b24a3f48e3 Binary files /dev/null and b/voice/hsb/voice/left_bear.ogg differ diff --git a/voice/hsb/voice/left_keep.ogg b/voice/hsb/voice/left_keep.ogg new file mode 100644 index 0000000000..087898d625 Binary files /dev/null and b/voice/hsb/voice/left_keep.ogg differ diff --git a/voice/hsb/voice/left_sh.ogg b/voice/hsb/voice/left_sh.ogg new file mode 100644 index 0000000000..7b7973e596 Binary files /dev/null and b/voice/hsb/voice/left_sh.ogg differ diff --git a/voice/hsb/voice/left_sl.ogg b/voice/hsb/voice/left_sl.ogg new file mode 100644 index 0000000000..f5be92c7c2 Binary files /dev/null and b/voice/hsb/voice/left_sl.ogg differ diff --git a/voice/hsb/voice/less_a_minute.ogg b/voice/hsb/voice/less_a_minute.ogg new file mode 100644 index 0000000000..b3e70395db Binary files /dev/null and b/voice/hsb/voice/less_a_minute.ogg differ diff --git a/voice/hsb/voice/location_lost.ogg b/voice/hsb/voice/location_lost.ogg new file mode 100644 index 0000000000..82c95c07b4 Binary files /dev/null and b/voice/hsb/voice/location_lost.ogg differ diff --git a/voice/hsb/voice/location_recovered.ogg b/voice/hsb/voice/location_recovered.ogg new file mode 100644 index 0000000000..857e4313f9 Binary files /dev/null and b/voice/hsb/voice/location_recovered.ogg differ diff --git a/voice/hsb/voice/make_uturn.ogg b/voice/hsb/voice/make_uturn.ogg new file mode 100644 index 0000000000..d435d1fcdd Binary files /dev/null and b/voice/hsb/voice/make_uturn.ogg differ diff --git a/voice/hsb/voice/make_uturn_wp.ogg b/voice/hsb/voice/make_uturn_wp.ogg new file mode 100644 index 0000000000..db8b35cd46 Binary files /dev/null and b/voice/hsb/voice/make_uturn_wp.ogg differ diff --git a/voice/hsb/voice/meters_accusative.ogg b/voice/hsb/voice/meters_accusative.ogg new file mode 100644 index 0000000000..7b85556cb3 Binary files /dev/null and b/voice/hsb/voice/meters_accusative.ogg differ diff --git a/voice/hsb/voice/meters_locative.ogg b/voice/hsb/voice/meters_locative.ogg new file mode 100644 index 0000000000..10199b0e1a Binary files /dev/null and b/voice/hsb/voice/meters_locative.ogg differ diff --git a/voice/hsb/voice/miles_accusative.ogg b/voice/hsb/voice/miles_accusative.ogg new file mode 100644 index 0000000000..2aa24f33d7 Binary files /dev/null and b/voice/hsb/voice/miles_accusative.ogg differ diff --git a/voice/hsb/voice/miles_locative.ogg b/voice/hsb/voice/miles_locative.ogg new file mode 100644 index 0000000000..4721c6ba95 Binary files /dev/null and b/voice/hsb/voice/miles_locative.ogg differ diff --git a/voice/hsb/voice/minutes.ogg b/voice/hsb/voice/minutes.ogg new file mode 100644 index 0000000000..163ebd87cb Binary files /dev/null and b/voice/hsb/voice/minutes.ogg differ diff --git a/voice/hsb/voice/off_route.ogg b/voice/hsb/voice/off_route.ogg new file mode 100644 index 0000000000..2f4172b17d Binary files /dev/null and b/voice/hsb/voice/off_route.ogg differ diff --git a/voice/hsb/voice/on.ogg b/voice/hsb/voice/on.ogg new file mode 100644 index 0000000000..922940ac68 Binary files /dev/null and b/voice/hsb/voice/on.ogg differ diff --git a/voice/hsb/voice/pedestrian_crosswalk.ogg b/voice/hsb/voice/pedestrian_crosswalk.ogg new file mode 100644 index 0000000000..160a4ae70d Binary files /dev/null and b/voice/hsb/voice/pedestrian_crosswalk.ogg differ diff --git a/voice/hsb/voice/prepare_roundabout.ogg b/voice/hsb/voice/prepare_roundabout.ogg new file mode 100644 index 0000000000..c814e5584d Binary files /dev/null and b/voice/hsb/voice/prepare_roundabout.ogg differ diff --git a/voice/hsb/voice/railroad_crossing.ogg b/voice/hsb/voice/railroad_crossing.ogg new file mode 100644 index 0000000000..bedeeffbc6 Binary files /dev/null and b/voice/hsb/voice/railroad_crossing.ogg differ diff --git a/voice/hsb/voice/reached_destination.ogg b/voice/hsb/voice/reached_destination.ogg new file mode 100644 index 0000000000..2a308c7985 Binary files /dev/null and b/voice/hsb/voice/reached_destination.ogg differ diff --git a/voice/hsb/voice/reached_favorite.ogg b/voice/hsb/voice/reached_favorite.ogg new file mode 100644 index 0000000000..3ff34ab9ae Binary files /dev/null and b/voice/hsb/voice/reached_favorite.ogg differ diff --git a/voice/hsb/voice/reached_intermediate.ogg b/voice/hsb/voice/reached_intermediate.ogg new file mode 100644 index 0000000000..1e4756cdb0 Binary files /dev/null and b/voice/hsb/voice/reached_intermediate.ogg differ diff --git a/voice/hsb/voice/reached_poi.ogg b/voice/hsb/voice/reached_poi.ogg new file mode 100644 index 0000000000..543fbefa06 Binary files /dev/null and b/voice/hsb/voice/reached_poi.ogg differ diff --git a/voice/hsb/voice/reached_waypoint.ogg b/voice/hsb/voice/reached_waypoint.ogg new file mode 100644 index 0000000000..1571f5d417 Binary files /dev/null and b/voice/hsb/voice/reached_waypoint.ogg differ diff --git a/voice/hsb/voice/right.ogg b/voice/hsb/voice/right.ogg new file mode 100644 index 0000000000..36935131b7 Binary files /dev/null and b/voice/hsb/voice/right.ogg differ diff --git a/voice/hsb/voice/right_bear.ogg b/voice/hsb/voice/right_bear.ogg new file mode 100644 index 0000000000..dd00fabafd Binary files /dev/null and b/voice/hsb/voice/right_bear.ogg differ diff --git a/voice/hsb/voice/right_keep.ogg b/voice/hsb/voice/right_keep.ogg new file mode 100644 index 0000000000..8de2fed65b Binary files /dev/null and b/voice/hsb/voice/right_keep.ogg differ diff --git a/voice/hsb/voice/right_sh.ogg b/voice/hsb/voice/right_sh.ogg new file mode 100644 index 0000000000..590c5b8e03 Binary files /dev/null and b/voice/hsb/voice/right_sh.ogg differ diff --git a/voice/hsb/voice/right_sl.ogg b/voice/hsb/voice/right_sl.ogg new file mode 100644 index 0000000000..381e927159 Binary files /dev/null and b/voice/hsb/voice/right_sl.ogg differ diff --git a/voice/hsb/voice/roundabout.ogg b/voice/hsb/voice/roundabout.ogg new file mode 100644 index 0000000000..933b9cc392 Binary files /dev/null and b/voice/hsb/voice/roundabout.ogg differ diff --git a/voice/hsb/voice/route_calculate.ogg b/voice/hsb/voice/route_calculate.ogg new file mode 100644 index 0000000000..6006c5c3b5 Binary files /dev/null and b/voice/hsb/voice/route_calculate.ogg differ diff --git a/voice/hsb/voice/route_is.ogg b/voice/hsb/voice/route_is.ogg new file mode 100644 index 0000000000..a7bea90f35 Binary files /dev/null and b/voice/hsb/voice/route_is.ogg differ diff --git a/voice/hsb/voice/speed_camera.ogg b/voice/hsb/voice/speed_camera.ogg new file mode 100644 index 0000000000..6138db8ebe Binary files /dev/null and b/voice/hsb/voice/speed_camera.ogg differ diff --git a/voice/hsb/voice/stop.ogg b/voice/hsb/voice/stop.ogg new file mode 100644 index 0000000000..48b1a14e3d Binary files /dev/null and b/voice/hsb/voice/stop.ogg differ diff --git a/voice/hsb/voice/take.ogg b/voice/hsb/voice/take.ogg new file mode 100644 index 0000000000..29e69c49a0 Binary files /dev/null and b/voice/hsb/voice/take.ogg differ diff --git a/voice/hsb/voice/take2.ogg b/voice/hsb/voice/take2.ogg new file mode 100644 index 0000000000..bd24737f78 Binary files /dev/null and b/voice/hsb/voice/take2.ogg differ diff --git a/voice/hsb/voice/tenths_of_a_mile_accusative.ogg b/voice/hsb/voice/tenths_of_a_mile_accusative.ogg new file mode 100644 index 0000000000..3f56ee1755 Binary files /dev/null and b/voice/hsb/voice/tenths_of_a_mile_accusative.ogg differ diff --git a/voice/hsb/voice/tenths_of_a_mile_locative.ogg b/voice/hsb/voice/tenths_of_a_mile_locative.ogg new file mode 100644 index 0000000000..c657d0438c Binary files /dev/null and b/voice/hsb/voice/tenths_of_a_mile_locative.ogg differ diff --git a/voice/hsb/voice/then.ogg b/voice/hsb/voice/then.ogg new file mode 100644 index 0000000000..a1f8e18130 Binary files /dev/null and b/voice/hsb/voice/then.ogg differ diff --git a/voice/hsb/voice/time.ogg b/voice/hsb/voice/time.ogg new file mode 100644 index 0000000000..83f4448459 Binary files /dev/null and b/voice/hsb/voice/time.ogg differ diff --git a/voice/hsb/voice/to.ogg b/voice/hsb/voice/to.ogg new file mode 100644 index 0000000000..af93ccf2c2 Binary files /dev/null and b/voice/hsb/voice/to.ogg differ diff --git a/voice/hsb/voice/toll_booth.ogg b/voice/hsb/voice/toll_booth.ogg new file mode 100644 index 0000000000..2f3a647930 Binary files /dev/null and b/voice/hsb/voice/toll_booth.ogg differ diff --git a/voice/hsb/voice/toward.ogg b/voice/hsb/voice/toward.ogg new file mode 100644 index 0000000000..ae59499829 Binary files /dev/null and b/voice/hsb/voice/toward.ogg differ diff --git a/voice/hsb/voice/traffic_calming.ogg b/voice/hsb/voice/traffic_calming.ogg new file mode 100644 index 0000000000..7ff33124f2 Binary files /dev/null and b/voice/hsb/voice/traffic_calming.ogg differ diff --git a/voice/hsb/voice/yards_accusative.ogg b/voice/hsb/voice/yards_accusative.ogg new file mode 100644 index 0000000000..39cf796530 Binary files /dev/null and b/voice/hsb/voice/yards_accusative.ogg differ diff --git a/voice/hsb/voice/yards_locative.ogg b/voice/hsb/voice/yards_locative.ogg new file mode 100644 index 0000000000..63c9d85384 Binary files /dev/null and b/voice/hsb/voice/yards_locative.ogg differ