diff --git a/radio/util/tts.py b/radio/util/tts.py index 6a9c02cf5..32a7dfa1d 100755 --- a/radio/util/tts.py +++ b/radio/util/tts.py @@ -9,18 +9,18 @@ # PyWin32 http://sourceforge.net/projects/pywin32/files/pywin32/ # # Note -# At the moment, pyTTS is only available for Python 2.3, 2.4 and 2.5. To use it for later versions without having to +# At the moment, pyTTS is only available for Python 2.3, 2.4 and 2.5. To use it for later versions without having to # recompile it, a quick and dirty solution is to: # copy the entire pyTTS directory from Python25\Lib\site-packages to Python26 or Python27 # replace TTSFast.py with an empty file. This way the version-dependent pyd file isn't loaded. -# in addition you will need some tools. +# in addition you will need some tools. # ffmpeg, sox, adconvertor ttscmd (2cnd speach centre) # have fun! # Sound pack maintainers (incomplete list) by language alphabetical order # Czech : Martin Hotar # French : Bertrand Songis & André Bernet -# English : Rob Thompson & Martin Hotar +# English : Rob Thompson & Martin Hotar # German : Romolo Manfredini (Some corrections by Peer) # Italian : Romolo Manfredini # Portuguese : Romolo Manfredini @@ -28,7 +28,10 @@ from __future__ import print_function -import os, sys, shutil, platform, subprocess, wave, zipfile +import os +import sys +import subprocess +import zipfile try: # Python 3 @@ -41,6 +44,7 @@ except ImportError: NO_ALTERNATE = 1024 + def filename(idx, alternate=0): if "gruvin9x" in sys.argv: ext = ".ad4" @@ -56,19 +60,20 @@ def filename(idx, alternate=0): result = "%04d%s" % (alternate, ext) return result + def wavstrip(filename): - output = "_" + filename - subprocess.Popen(["sox", filename, output, "silence", "1", "0.1", "0.1%", "reverse", "silence", "1", "0.1", "0.1%", "reverse"], stdout=subprocess.PIPE, stderr=subprocess.PIPE).wait() - os.remove(filename) - os.rename(output, filename) - - + output = "_" + filename + subprocess.Popen(["sox", filename, output, "silence", "1", "0.1", "0.1%", "reverse", "silence", "1", "0.1", "0.1%", "reverse"], stdout=subprocess.PIPE, stderr=subprocess.PIPE).wait() + os.remove(filename) + os.rename(output, filename) + + def generate(str, filename): print(filename, str) if not str: - str = " !" #this is so blank wav files never exist! - + str = " !" # this is so blank wav files never exist! + if "speak" in sys.argv: if "sapi" in sys.argv: tts.Speak(str) @@ -84,9 +89,9 @@ def generate(str, filename): if "sapi" in sys.argv: ttsfilename = "ttsfile.wav" tts.SpeakToWave(ttsfilename, str) - elif "sapi2" in sys.argv: - ttsfilename = "ttsfile.wav" - subprocess.Popen(["ttscmd", "/ttw", str.encode("utf-8"), ttsfilename, "-v", voiceID, "-b", "32","-s", "\"-3\"","-w","32","-f","47"], stdout=subprocess.PIPE, stderr=subprocess.PIPE).wait() + elif "sapi2" in sys.argv: + ttsfilename = "ttsfile.wav" + subprocess.Popen(["ttscmd", "/ttw", str.encode("utf-8"), ttsfilename, "-v", voiceID, "-b", "32", "-s", "\"-3\"", "-w", "32", "-f", "47"], stdout=subprocess.PIPE, stderr=subprocess.PIPE).wait() elif "espeak" in sys.argv: ttsfilename = "ttsfile.wav" subprocess.Popen(["espeak", "-v", espeakVoice, "-s", espeakspeed, "-z", "-w", ttsfilename, str.encode("utf-8")], stdout=subprocess.PIPE, stderr=subprocess.PIPE).wait() @@ -99,673 +104,52 @@ def generate(str, filename): conn.request("GET", u"/translate_tts?%s" % params, headers=headers) # conn.request("GET", "/translate_tts?ie=UTF-8&tl=%s&q=%s" % (directory, urllib.urlencode(str)), headers={"User-Agent": "Mozilla"}) resp = conn.getresponse() - file(ttsmp3, "wb").write(resp.read()) + with open(ttsmp3, "wb") as f: + f.write(resp.read()) subprocess.Popen(["ffmpeg", "-y", "-i", ttsmp3, "-acodec", "pcm_s16le", ttsfilename], stdout=subprocess.PIPE, stderr=subprocess.PIPE).wait() conn.close() - + else: print("which speach engine?") - exit() + exit() wavstrip(ttsfilename) - + if board in ('sky9x', 'taranis'): if 'sox' in sys.argv: maxvolume = subprocess.Popen(["sox", ttsfilename, "-n", "stat", "-v"], stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()[1] - if "not sound" in maxvolume: - subprocess.Popen(["sox", "--show-progress", filename, ttsfilename], stdout=subprocess.PIPE).communicate()[0]; - else: - subprocess.Popen(["sox", "--show-progress","-v", maxvolume, filename, ttsfilename], stdout=subprocess.PIPE).communicate()[0]; + if "not sound" in maxvolume: + subprocess.Popen(["sox", "--show-progress", filename, ttsfilename], stdout=subprocess.PIPE).communicate()[0] + else: + subprocess.Popen(["sox", "--show-progress", "-v", maxvolume, filename, ttsfilename], stdout=subprocess.PIPE).communicate()[0] if board == 'sky9x': - subprocess.Popen(["sox", "-twav", ttsfilename, "-b1600", "-c1", "-e", "a-law", filename], stdout=subprocess.PIPE, stderr=subprocess.PIPE).wait() + subprocess.Popen(["sox", "-twav", ttsfilename, "-b1600", "-c1", "-e", "a-law", filename], stdout=subprocess.PIPE, stderr=subprocess.PIPE).wait() else: - subprocess.Popen(["sox", "-twav", ttsfilename, "-b32000", "-c1", "-e", "a-law", filename], stdout=subprocess.PIPE, stderr=subprocess.PIPE).wait() + subprocess.Popen(["sox", "-twav", ttsfilename, "-b32000", "-c1", "-e", "a-law", filename], stdout=subprocess.PIPE, stderr=subprocess.PIPE).wait() else: if board == 'sky9x': - subprocess.Popen(["ffmpeg", "-y", "-i", ttsfilename, "-acodec", defaultcodec, "-ar", "16000", filename], stdout=subprocess.PIPE, stderr=subprocess.PIPE).wait() + subprocess.Popen(["ffmpeg", "-y", "-i", ttsfilename, "-acodec", defaultcodec, "-ar", "16000", filename], stdout=subprocess.PIPE, stderr=subprocess.PIPE).wait() else: - subprocess.Popen(["ffmpeg", "-y", "-i", ttsfilename, "-acodec", defaultcodec, "-ar", "32000", filename], stdout=subprocess.PIPE, stderr=subprocess.PIPE).wait() + subprocess.Popen(["ffmpeg", "-y", "-i", ttsfilename, "-acodec", defaultcodec, "-ar", "32000", filename], stdout=subprocess.PIPE, stderr=subprocess.PIPE).wait() elif board == 'gruvin9x': subprocess.Popen(["AD4CONVERTER", "-E4", ttsfilename], stdout=subprocess.PIPE, stderr=subprocess.PIPE).wait() - os.rename(ttsfilename.replace(".wav", ".ad4"), filename) + os.rename(ttsfilename.replace(".wav", ".ad4"), filename) else: subprocess.Popen(["ffmpeg", "-y", "-i", ttsfilename, "-acodec", "pcm_u8", "-ar", "16000", filename], stdout=subprocess.PIPE, stderr=subprocess.PIPE).wait() os.remove(ttsfilename) ################################################################ -def ttsEn(): - systemSounds = [] - sounds = [] - - for i in range(100): - systemSounds.append((str(i), filename(PROMPT_SYSTEM_BASE+i))) - for i in range(9): - systemSounds.append((str(100*(i+1)), filename(PROMPT_SYSTEM_BASE+100+i))) - for i, s in enumerate(["thousand", "and", "minus", "point"]): - systemSounds.append((s, filename(PROMPT_SYSTEM_BASE+109+i))) - for i, s in enumerate(["volt", "volts", - "amp", "amps", - "milliamp", "milliamps", - "knot", "knots", - "meter per second", "meters per second", - "foot per second", "feet per second", - "kilometer per hour", "kilometers per hour", - "mile per hour", "miles per hour", - "meter", "meters", - "foot", "feet", - "degree celsius", "degrees celsius", - "degree fahrenheit", "degrees fahrenheit", - "percent", "percent", - "milliamp-hour", "milliamp-hours", - "watt", "watts", - "db", "db", - "r p m", "r p m", - "g", "g", - "degree", "degrees", - "milliliter", "milliliters", - "fluid ounce", "fluid ounces", - "hour", "hours", - "minute", "minutes", - "second", "seconds", - ]): - systemSounds.append((s, filename(PROMPT_SYSTEM_BASE+115+i))) - for i, s in enumerate(["point zero", "point one", "point two", "point three", - "point four", "point five", "point six", - "point seven", "point eight", "point nine"]): - systemSounds.append((s, filename(PROMPT_SYSTEM_BASE+165+i))) - for s, f, a in [(u"trim center", "midtrim", 495), - (u"maximum trim reached", "endtrim", NO_ALTERNATE), - (u"transmitter battery low", "lowbatt", 485), - (u"inactivity alarm", "inactiv", 486), - (u"throttle warning", "thralert", 481), - (u"switch warning", "swalert", 482), - (u"bad eeprom", "eebad", 483), - (u"Welcome to open tea ex!", "tada", 480), - (u"twenty. seconds", "timer20", 500), - (u"thirty. seconds", "timer30", 501), - (u"A1,low", "a1_org", NO_ALTERNATE), - (u"A1,critical", "a1_red", NO_ALTERNATE), - (u"A2,low", "a2_org", NO_ALTERNATE), - (u"A2,critical", "a2_red", NO_ALTERNATE), - (u"A3,low", "a3_org", NO_ALTERNATE), - (u"A3,critical", "a3_red", NO_ALTERNATE), - (u"A4,low", "a4_org", NO_ALTERNATE), - (u"A4,critical", "a4_red", NO_ALTERNATE), - (u"RF signal, low", "rssi_org", NO_ALTERNATE), - (u"RF signal, critical", "rssi_red", NO_ALTERNATE), - (u"radio antenna defective", "swr_red", NO_ALTERNATE), - (u"telemetry lost", "telemko", NO_ALTERNATE), - (u"telemetry recovered", "telemok", NO_ALTERNATE), - (u"trainer signal lost", "trainko", NO_ALTERNATE), - (u"trainer signal recovered", "trainok", NO_ALTERNATE), - ]: - systemSounds.append((s, filename(f, a))) - for i, (s, f) in enumerate([ - (u"gear!, up!", "gearup"), - (u"gear!, down!", "geardn"), - (u"flaps!, up!", "flapup"), - (u"flaps!, down!", "flapdn"), - (u"spoiler!, up!", "splrup"), - (u"spoiler!, down!", "splrdn"), - (u"trainer!, on!", "trnon"), - (u"trainer!, off!", "trnoff"), - (u"engine!, off!", "engoff"), - (u"too. high!", "tohigh"), - (u"too. low!", "tolow"), - (u"low. battery!", "lowbat"), - (u"crow!, on!", "crowon"), - (u"crow!, off!", "crowof"), - (u"rf. signal!, low!", "siglow"), - (u"rf. signal!, critical!", "sigcrt"), - (u"high. speed. mode!, active", "spdmod"), - (u"thermal. mode!, on", "thmmod"), - (u"normal. mode!, on", "nrmmod"), - (u"landing. mode!, on", "lnding"), - (u"acro. mode!, on", "acro"), - (u"flight. mode!, one", "fm-1"), - (u"flight. mode!, two", "fm-2"), - (u"flight. mode!, three", "fm-3"), - (u"flight. mode!, four", "fm-4"), - (u"flight. mode!, five", "fm-5"), - (u"flight. mode!, six", "fm-6"), - (u"flight. mode!, seven", "fm-7"), - (u"flight. mode!, eight", "fm-8"), - (u"vario!, on", "vrion"), - (u"vario!, off", "vrioff"), - (u"flight mode!, power", "fm-pwr"), - (u"flight mode!, land", "fm-lnd"), - (u"flight mode!, float", "fm-flt"), - (u"flight mode!, speed", "fm-spd"), - (u"flight mode!, fast", "fm-fst"), - (u"flight mode!, normal", "fm-nrm"), - (u"flight mode!, cruise", "fm-crs"), - (u"flight mode!, acro", "fm-acr"), - (u"flight mode!, race", "fm-rce"), - (u"flight mode!, launch", "fm-lch"), - (u"flight mode!, ping", "fm-png"), - (u"flight mode!, thermal", "fm-thm"), - (u"flight mode!, thermal left", "fm-thml"), - (u"flight mode!, thermal right", "fm-thmr"), - ]): - sounds.append((s, filename(f, PROMPT_CUSTOM_BASE+i))) - return systemSounds, sounds - -################################################################ - -def ttsFr(): - systemSounds = [] - sounds = [] - - for i in range(100): - systemSounds.append((str(i), filename(PROMPT_SYSTEM_BASE+i))) - for i in range(10): - systemSounds.append((str(100*(i+1)), filename(PROMPT_SYSTEM_BASE+100+i))) - for i, s in enumerate(["une", "onze", "vingt et une", "trente et une", "quarante et une", "cinquante et une", "soixante et une", "soixante et onze", "quatre vingt une"]): - systemSounds.append((s, filename(PROMPT_SYSTEM_BASE+110+i))) - for i, s in enumerate(["virgule", "et", "moins", "minuit", "midi"]): - systemSounds.append((s, filename(PROMPT_SYSTEM_BASE+119+i))) - for i, s in enumerate(["volts", u"ampères", u"milli ampères", u"knots", u"mètres seconde", u"pieds par seconde", u"kilomètre heure", u"miles par heure", u"mètres", "pieds", u"degrés", u"degrés fahrenheit", "pourcents", u"milli ampères / heure", "watt", "db", "tours minute", "g", u"degrés", "millilitres", "onces", "heure", "minute", "seconde"]): - systemSounds.append((s, filename(PROMPT_SYSTEM_BASE+125+i))) - #for i, s in enumerate(["timer", "", "tension", "tension", u"émission", u"réception", "altitude", "moteur", - # "essence", u"température", u"température", "vitesse", "distance", "altitude", u"élément lipo", - # "total lipo", "tension", "courant", "consommation", "puissance", u"accelération X", u"accelération Y", u"accelération Z", - # "orientation", "vario"]): - # systemSounds.append((s, filename(PROMPT_SYSTEM_BASE+146+i))) - for i, s in enumerate(["virgule 0", "virgule 1", "virgule 2", "virgule 3", "virgule 4", "virgule 5", "virgule 6", "virgule 7", "virgule 8", "virgule 9"]): - systemSounds.append((s, filename(PROMPT_SYSTEM_BASE+180+i))) - for s, f, a in [(u"Trim centré", "midtrim", 495), - (u"Trim maximum atteint", "endtrim", NO_ALTERNATE), - (u"Batterie radio faible !", "lowbatt", 485), - (u"Radio inactive !", "inactiv", 486), - (u"Alerte manche des gaz", "thralert", 481), - (u"Alerte inters", "swalert", 482), - (u"éprome corrompue", "eebad", 483), - (u"Bienvenue sur Open TI X!", "tada", 480), - (u"vingt secondes", "timer20", 500), - (u"trente secondes", "timer30", 501), - (u"A1,faible", "a1_org", NO_ALTERNATE), - (u"A1,critique", "a1_red", NO_ALTERNATE), - (u"A2,faible", "a2_org", NO_ALTERNATE), - (u"A2,critique", "a2_red", NO_ALTERNATE), - (u"A3,faible", "a3_org", NO_ALTERNATE), - (u"A3,critique", "a3_red", NO_ALTERNATE), - (u"A4,faible", "a4_org", NO_ALTERNATE), - (u"A4,critique", "a4_red", NO_ALTERNATE), - (u"Signal RF, faible", "rssi_org", NO_ALTERNATE), - (u"Signal RF, critique", "rssi_red", NO_ALTERNATE), - (u"Antenne défectueuse", "swr_red", NO_ALTERNATE), - (u"Plus de télémétrie", "telemko", NO_ALTERNATE), - (u"Télémétrie retrouvée", "telemok", NO_ALTERNATE), - (u"Signal écolage perdu", "trainko", NO_ALTERNATE), - (u"Signal écolage retrouvé", "trainok", NO_ALTERNATE), - ]: - systemSounds.append((s, filename(f, a))) - for i, (s, f) in enumerate([ - (u"altitude", "altitude"), - (u"température moteur", "moteur"), - (u"température contrôleur", "cntrleur"), - (u"train rentré", "gearup"), - (u"train sorti", "geardn"), - (u"volets rentrés", "flapup"), - (u"volets sortis", "flapdn"), - (u"atterrissage", "attero"), - (u"écolage", "trnon"), - (u"fin écolage", "trnoff"), - (u"moteur coupé", "engoff"), - ]): - sounds.append((s, filename(f, PROMPT_CUSTOM_BASE+i))) - return systemSounds, sounds - -################################################################ - -def ttsIt(): - systemSounds = [] - sounds = [] - - for i in range(101): - systemSounds.append((str(i), filename(PROMPT_SYSTEM_BASE+i))) - systemSounds.append(("mila", filename(PROMPT_SYSTEM_BASE+101))) - systemSounds.append(("mille", filename(PROMPT_SYSTEM_BASE+102))) - for i, s in enumerate(["virgola", "un", "e", "meno", "ora", "ore", "minuto", "minuti", "secondo", "secondi"]): - systemSounds.append((s, filename(PROMPT_SYSTEM_BASE+103+i))) - for i, s in enumerate(["", "", - "volt", "volt", - "ampere", "ampere", - "milliampers", "milliampers", - "nodo", "nodi", - "metro al secondo", "metri al secondo", - "piede al secondo", "piedi al secondo", - "chilometro ora", "chilometri ora", - "miglio per ora", "miglia per ora", - "metro", "metri", - "piede", "piedi", - "grado celsius", "gradi celsius", - "grado fahrenheit", "gradi fahrenheit", - "percento", "percento", - "milliampere ora", "milliampere ora", - "watt", "watt", - "decibel", "decibel", - "R P M", "R P M", - "g", "g", - "grado", "gradi", - "millilitro", "millilitri", - "oncia", "once"]): - systemSounds.append((s, filename(PROMPT_SYSTEM_BASE+113+i))) - for s, f, a in [(u"radio inattiva controllare", "inactiv", 486), - (u"batteria della radio scarica", "lowbatt", 485), - (u"controllo motore non in posizione, verificare", "thralert", 481), - (u"interruttori non in posizione, verificare", "swalert", 482), - (u"eeprom corrotta", "eebad", NO_ALTERNATE), - (u"formattazone eeprom in corso", "eeformat", NO_ALTERNATE), - (u"errore", "error", NO_ALTERNATE), - (u"trim centrato", "midtrim", 495), - (u"potenziometro centrato", "midpot", 496), - (u"massimo trim raggiunto", "endtrim", NO_ALTERNATE), - (u"venti secondi", "timer20", 500), - (u"trenta secondi", "timer30", 501), - (u"assorbimento elevato", "highmah", NO_ALTERNATE), - (u"temperatura elevata", "hightemp", NO_ALTERNATE), - (u"A1 in allarme", "a1_org", NO_ALTERNATE), - (u"A1 critico", "a1_red", NO_ALTERNATE), - (u"A2 in allarme", "a2_org", NO_ALTERNATE), - (u"A2 critico", "a2_red", NO_ALTERNATE), - (u"A3 in allarme", "a3_org", NO_ALTERNATE), - (u"A3 critico", "a3_red", NO_ALTERNATE), - (u"A4 in allarme", "a4_org", NO_ALTERNATE), - (u"A4 critico", "a4_red", NO_ALTERNATE), - (u"Segnale radio basso", "rssi_org", NO_ALTERNATE), - (u"Segnale radio critico", "rssi_red", NO_ALTERNATE), - (u"Problema all'antenna della radio", "swr_red", NO_ALTERNATE), - (u"Telemetria assente", "telemko", NO_ALTERNATE), - (u"Telemetria disponibile", "telemok", NO_ALTERNATE), - ]: - systemSounds.append((s, filename(f, a))) - for i, s in enumerate([u"timer", u"", u"tensione", u"tensione", u"trasmissione", u"ricezione", u"altitudine", u"motore", - u"carburante", u"temperatura", u"temperatura", u"velocità", "distanza", u"altitudine", u"cella lipo", - u"totale lipo", u"tensione", u"corrente", u"consumo", u"potenza", u"accellerazione X", u"accellerazione Y", u"accellerazione Z", - u"direzione", u"variometro",u"minimo",u"massimo"]): - systemSounds.append((s, filename(PROMPT_SYSTEM_BASE+135+i))) - for i, (s, f) in enumerate([ - (u"carrello chiuso", "gearup"), - (u"carrello aperto", "geardn"), - (u"flap rientrati", "flapup"), - (u"flap estesi", "flapdn"), - (u"atterraggiio", "attero"), - (u"modalità maestro attiva", "trnon"), - (u"modalità maestro disattiva", "trnoff"), - (u"motore spento", "engoff"), - (u"troppo alto", "tohigh"), - (u"troppo basso", "tolow"), - (u"batteria scarica", "lowbat"), - (u"crow on", "crowon"), - (u"crow off", "crowof"), - (u"modo velocità", "spdmod"), - (u"modo termica", "thmmod"), - (u"modo volo normale", "nrmmod"), - (u"fase di volo 1", "fltmd1"), - (u"fase di volo 2", "fltmd2"), - (u"fase di volo 3", "fltmd3"), - (u"fase di volo 4", "fltmd4"), - (u"fase di volo 5", "fltmd5"), - (u"fase di volo 6", "fltmd6"), - (u"fase di volo 7", "fltmd7"), - (u"fase di volo 8", "fltmd8"), - (u"fase di volo 9", "fltmd9"), - ]): - sounds.append((s, filename(f, PROMPT_CUSTOM_BASE+i))) - return systemSounds, sounds - -################################################################ - -def ttsPt(): - systemSounds = [] - sounds = [] - - for i in range(101): - systemSounds.append((str(i), filename(PROMPT_SYSTEM_BASE+i))) - systemSounds.append(("cento", filename(PROMPT_SYSTEM_BASE+101))) - systemSounds.append(("duzentos", filename(PROMPT_SYSTEM_BASE+102))) - systemSounds.append(("trezentos", filename(PROMPT_SYSTEM_BASE+103))) - systemSounds.append(("quatrocentos", filename(PROMPT_SYSTEM_BASE+104))) - systemSounds.append(("quinhentos", filename(PROMPT_SYSTEM_BASE+105))) - systemSounds.append(("seiscentos", filename(PROMPT_SYSTEM_BASE+106))) - systemSounds.append(("setecentos", filename(PROMPT_SYSTEM_BASE+107))) - systemSounds.append(("oitocentos", filename(PROMPT_SYSTEM_BASE+108))) - systemSounds.append(("novecentos", filename(PROMPT_SYSTEM_BASE+109))) - systemSounds.append(("mil", filename(PROMPT_SYSTEM_BASE+110))) - for i, s in enumerate(["virgula", "uma", "duas", "e", "menos", "hora", "horas", "minuto", "minutos", "segundo", "segundos"]): - systemSounds.append((s, filename(PROMPT_SYSTEM_BASE+111+i))) - for i, s in enumerate([u"Volt", u"ampére", u"metros por segundo", u"", u"quilômetros por hora", u"metros", u"graus", u"cento", u"miliamperes", u"miliamperes por hora", u"watt", u"db", u"pés", u"nós", u"horas", u"minutos", u"segundos", u"RPM", u"g", u"mililitri", u"onças"]): - systemSounds.append((s, filename(PROMPT_SYSTEM_BASE+122+i))) - for s, f, a in [(u"atenção, o rádio foi esquecido ligado, por favor desligue-o", "inactiv", 486), - (u"bateria do rádio fraca", "lowbatt", 485), - (u"atenção,acelerador não está no mínimo", "thralert", 481), - (u"atenção, certifique-se que os interruptores estão na posição certa", "swalert", 482), - (u"eeprom corrompida", "eebad", NO_ALTERNATE), - (u"formatação da eeprom em curso", "eeformat", NO_ALTERNATE), - (u"erro", "error", NO_ALTERNATE), - (u"trim centrado", "midtrim", 495), - (u"potenciómetro centrado", "midpot", 496), - (u"trim no máximo", "endtrim", NO_ALTERNATE), - (u"20 segundos", "timer20", 500), - (u"30 segundos", "timer30", 501), - (u"assorbimento elevato", "highmah", NO_ALTERNATE), - (u"temperatura elevata", "hightemp", NO_ALTERNATE), - (u"Alarme A1", "a1_org", NO_ALTERNATE), - (u"A1 critica", "a1_red", NO_ALTERNATE), - (u"Alarme A2", "a2_org", NO_ALTERNATE), - (u"A2 critica", "a2_red", NO_ALTERNATE), - (u"recepção de sinal muito baixa", "rssi_org", NO_ALTERNATE), - (u"recepção de sinal crítica", "rssi_red", NO_ALTERNATE), - (u"Problema com a antena do transmissor", "swr_red", NO_ALTERNATE), - ]: - systemSounds.append((s, filename(f, a))) - for i, s in enumerate([u"cronómetro", u"cronómetro", u"transmissão", u"recepção", u"A1", u"A2", u"altitude", u"motor", - u"combustível", u"temperatura", u"temperatura", u"velocidade", u"distância", u"altitude", u"célula lipo", - u"Total lipo", u"tensão", u"corrente", u"consumo", u"potência", u"aceleração X", u"aceleração Y", u"aceleração Z", - u"Direcção", u"variómetro", u"mínimo", u"máximo"]): - systemSounds.append((s, filename(PROMPT_SYSTEM_BASE+141+i))) - for i, (s, f) in enumerate([ - (u"trem, em cima.", "gearup"), - (u"trem, em baixo.", "geardn"), - (u"flaps recolhidos", "flapup"), - (u"flaps estendidos", "flapdn"), - (u"aterragem", "attero"), - (u"modo de treino ligado", "trnon"), - (u"modo de treino desligado", "trnoff"), - (u"motor desligado", "engoff"), - (u"muito alto", "tohigh"), - (u"muito baixo", "tolow"), - (u"bateria fraca", "lowbat"), - (u"crou, activo", "crowon"), - (u"crou, desligado", "crowof"), - (u"modo de velocidade", "spdmod"), - (u"modo de térmica", "thmmod"), - (u"modo de voo normal", "nrmmod"), - (u"fase de voo 1", "fltmd1"), - (u"fase de voo 2", "fltmd2"), - (u"fase de voo 3", "fltmd3"), - (u"fase de voo 4", "fltmd4"), - (u"fase de voo 5", "fltmd5"), - (u"fase de vôo 6", "fltmd6"), - (u"fase de voo 7", "fltmd7"), - (u"fase de voo 8", "fltmd8"), - (u"fase de voo 9", "fltmd9"), - ]): - sounds.append((s, filename(f, PROMPT_CUSTOM_BASE+i))) - return systemSounds, sounds - -################################################################ - -def ttsEs(): - systemSounds = [] - sounds = [] - - for i in range(101): - systemSounds.append((str(i), filename(PROMPT_SYSTEM_BASE+i))) - systemSounds.append(("ciento", filename(PROMPT_SYSTEM_BASE+101))) - systemSounds.append(("doscientos", filename(PROMPT_SYSTEM_BASE+102))) - systemSounds.append(("trescientos", filename(PROMPT_SYSTEM_BASE+103))) - systemSounds.append(("cuatrocientos", filename(PROMPT_SYSTEM_BASE+104))) - systemSounds.append(("quinientos", filename(PROMPT_SYSTEM_BASE+105))) - systemSounds.append(("sescientos", filename(PROMPT_SYSTEM_BASE+106))) - systemSounds.append(("setecientos", filename(PROMPT_SYSTEM_BASE+107))) - systemSounds.append(("ochocientos", filename(PROMPT_SYSTEM_BASE+108))) - systemSounds.append(("nuevecientos", filename(PROMPT_SYSTEM_BASE+109))) - systemSounds.append(("mil", filename(PROMPT_SYSTEM_BASE+110))) - for i, s in enumerate(["coma", "un", "una", "y", "meno", "hora", "horas", "minuto", "minutos", "segundo", "segundos"]): - systemSounds.append((s, filename(PROMPT_SYSTEM_BASE+111+i))) - for i, s in enumerate([u"Voltio", u"ampério", u"metros por segundo", u"", u"kilómetro por hora", u"metros", u"grados", u"por ciento", u"miliamperios", u"miliamperios por hora", u"vatio", u"db", u"pés", u"nós", u"horas", u"minutos", u"segundos", u"RPM", u"g", u"mililitro", u"onzas"]): - systemSounds.append((s, filename(PROMPT_SYSTEM_BASE+122+i))) - for s, f, a in [(u"me tienes abandonada", "inactiv", 486), - (u"batería del transmisor baja", "lowbatt", 485), - (u"El acelerador está activado, por favor, corrijalo", "thralert", 481), - (u"Los interruptores no están en la posición correcta, por favor corrijalo", "swalert", 482), - (u"eeprom corrompida", "eebad", NO_ALTERNATE), - (u"Formateo de eeprom en curso", "eeformat", NO_ALTERNATE), - (u"error", "error", NO_ALTERNATE), - (u"trim centrado", "midtrim", 495), - (u"potenciómetro centrado", "midpot", 496), - (u"trim al máximo", "endtrim", NO_ALTERNATE), - (u"20 segundos", "timer20", 500), - (u"30 segundos", "timer30", 501), - (u"assorbimiento elevado", "highmah", NO_ALTERNATE), - (u"temperatura elevada", "hightemp", NO_ALTERNATE), - (u"Alarma A1", "a1_org", NO_ALTERNATE), - (u"A1 crítica", "a1_red", NO_ALTERNATE), - (u"Alarma A2", "a2_org", NO_ALTERNATE), - (u"A2 crítica", "a2_red", NO_ALTERNATE), - (u"recepcion de señal baja", "rssi_org", NO_ALTERNATE), - (u"recepción de señal crítica", "rssi_red", NO_ALTERNATE), - (u"Problemas con la antena del transmisor", "swr_red", NO_ALTERNATE), - (u"Sin telemetría", "telemko", NO_ALTERNATE), - (u"Telemetría disponible", "telemok", NO_ALTERNATE), - ]: - systemSounds.append((s, filename(f, a))) - for i, s in enumerate([u"cronómetro", u"cronómetro", u"transmisión", u"recepción", u"A1", u"A2", u"altitud", u"motor", - u"combustible", u"temperatura", u"temperatura", u"velocidad", u"distancia", u"altitude", u"célula lipo", - u"Total lipo", u"voltaje", u"corriente", u"consumo", u"potencia", u"aceleración X", u"aceleración Y", u"aceleración Z", - u"dirección", u"variómetro", u"minimo", u"máximo"]): - systemSounds.append((s, filename(PROMPT_SYSTEM_BASE+141+i))) - for i, (s, f) in enumerate([ - (u"tren arriba.", "gearup"), - (u"tren abajo.", "geardn"), - (u"flaps arriba", "flapup"), - (u"flaps abajo", "flapdn"), - (u"aterrizaje", "attero"), - (u"modo de entrenamiento activado", "trnon"), - (u"modo de entrenamiento deshabilitado", "trnoff"), - (u"motor apagado", "engoff"), - (u"muy alto", "tohigh"), - (u"muy bajo", "tolow"), - (u"bateria baja", "lowbat"), - (u"crou, activo", "crowon"), - (u"crou, desligado", "crowof"), - (u"modo de velocidad", "spdmod"), - (u"modo de térmica", "thmmod"), - (u"modo de vuelo normal", "nrmmod"), - (u"fase de vuelo 1", "fltmd1"), - (u"fase de vuelo 2", "fltmd2"), - (u"fase de vuelo 3", "fltmd3"), - (u"fase de vuelo 4", "fltmd4"), - (u"fase de vuelo 5", "fltmd5"), - (u"fase de vuelo 6", "fltmd6"), - (u"fase de vuelo 7", "fltmd7"), - (u"fase de vuelo 8", "fltmd8"), - (u"fase de vuelo 9", "fltmd9"), - ]): - sounds.append((s, filename(f, PROMPT_CUSTOM_BASE+i))) - return systemSounds, sounds - -################################################################ - -def ttsDe(): - systemSounds = [] - sounds = [] - - for i in range(101): - systemSounds.append((str(i), filename(PROMPT_SYSTEM_BASE+i))) - systemSounds.append(("tausend", filename(PROMPT_SYSTEM_BASE+101))) - for i, s in enumerate(["comma", "und", "minus", "uhr", "minute", "minuten", "sekunde", "sekunden"]): - systemSounds.append((s, filename(PROMPT_SYSTEM_BASE+102+i))) - for i, s in enumerate(["", "Volt", "Ampere", "MilliAmpere", "Knoten", "Meter pro sekunde", "Fuesse pro sekunde", "kilometer pro stunde", "Meilen pro Stunde", "Meter", "Fuesse", "Grad", "Grad Fahrenheit", "Prozent", "Milliampere pro stunde", "Watt", "db", "R P M", "g", "Milliliter", "Unze", "Uhr", "Minuten", "Secunden",]): - systemSounds.append((s, filename(PROMPT_SYSTEM_BASE+110+i))) - for s, f, a in [(u"Sender ist inaktiv,bitte Ueberpruefen Sie", "inactiv", 486), - (u"Senderakku niedrig", "lowbatt", 485), - (u"Gaskanal nicht Null, bitte pruefen", "thralert", 481), - (u"Schalten fehlpositioniert, bitte pruefen", "swalert", 482), - (u"Das EEPROM ist fehlerhaft", "eebad", NO_ALTERNATE), - (u"Das EEPROM ist immer formatiert", "eeformat", NO_ALTERNATE), - (u"fehler", "error", NO_ALTERNATE), - (u"Trim zentriert", "midtrim", 495), - (u"Poti zentriert", "midpot", 496), - (u"Maximale trimmung erreicht", "endtrim", NO_ALTERNATE), - (u"20 sekunden", "timer20", 500), - (u"30 sekunden", "timer30", 501), - (u"Senderstrom ist zu hoch!", "highmah", NO_ALTERNATE), - (u"Sendertemperatur ist zu hoch!", "hightemp", NO_ALTERNATE), - (u"A1 schlecht!", "a1_org", NO_ALTERNATE), - (u"A1 kritisch!", "a1_red", NO_ALTERNATE), - (u"A2 schlecht!", "a2_org", NO_ALTERNATE), - (u"A2 kritisch!", "a2_red", NO_ALTERNATE), - (u"A3 schlecht!", "a3_org", NO_ALTERNATE), - (u"A3 kritisch!", "a3_red", NO_ALTERNATE), - (u"A4 schlecht!", "a4_org", NO_ALTERNATE), - (u"A4 kritisch!", "a4_red", NO_ALTERNATE), - (u"Funksignal schlecht!", "rssi_org", NO_ALTERNATE), - (u"Funksignal kritisch!", "rssi_red", NO_ALTERNATE), - (u"Problem mit der sender Antenna", "swr_red", NO_ALTERNATE), - (u"Telemetrie verloren", "telemko", NO_ALTERNATE), - (u"Telemetrie wiederhergestellt", "telemok", NO_ALTERNATE), - (u"Schülersignal verloren", "trainko", NO_ALTERNATE), - (u"Schülersignal wiederhergestellt", "trainok", NO_ALTERNATE), - ]: - systemSounds.append((s, filename(f, a))) - for i, s in enumerate(["Timer", "Timer", "Sendung", "Empfang", "A1", "A2", "Hoehe", "Motor", - "Treibstoff", "Temperatur", "Temperatur", "Geschwindigkeit", "Ferne", "Hoehe", "Lipo-Zelle", - "Zellen gesamt", "Spannung", "Strom", "Verbrauch", "Power", "Beschleunigung X", "Beschleunigung Y", "Beschleunigung Z", - "Richtung", "Variometer","Minimum","Maximum"]): - systemSounds.append((s, filename(PROMPT_SYSTEM_BASE+134+i))) - for i, (s, f) in enumerate([ - (u"Fahrwerk eingezogen", "gearup"), - (u"Fahrwerk ausgefahren", "geardn"), - (u"Klappen eingefahren", "flapup"), - (u"Klappen ausgefahren", "flapdn"), - (u"Landung", "attero"), - (u"Trainer-Modus ein", "trnon"), - (u"Trainer-Modus aus", "trnoff"), - (u"Motor aus", "engoff"), - (u"zu hoch", "tohigh"), - (u"zu niedrig", "tolow"), - (u"Batterie schwach", "lowbat"), - (u"crow ein", "crowon"), - (u"crow aus", "crowof"), - (u"Schnell-Modus ist aktiviert", "spdmod"), - (u"Thermik-Modus ist aktiviert", "thmmod"), - (u"Normal-Modus ist aktiviert", "nrmmod"), - (u"Regime 1", "fltmd1"), - (u"Regime 2", "fltmd2"), - (u"Regime 3", "fltmd3"), - (u"Regime 4", "fltmd4"), - (u"Regime 5", "fltmd5"), - (u"Regime 6", "fltmd6"), - (u"Regime 7", "fltmd7"), - (u"Regime 8", "fltmd8"), - (u"Regime 9", "fltmd9"), - ]): - sounds.append((s, filename(f, PROMPT_CUSTOM_BASE+i))) - return systemSounds, sounds - -################################################################ - -def ttsCz(): - systemSounds = [] - sounds = [] - - for i, s in enumerate(["nula", "jedna", "dva"]): - systemSounds.append((s, filename(PROMPT_SYSTEM_BASE+i))) - for i in range(97): - systemSounds.append((str(3+i), filename(PROMPT_SYSTEM_BASE+3+i))) - for i, s in enumerate(["sto", u"dvěsta", u"třista", u"čtyřista", u"pětset", u"šestset", "sedmset", "osmset", - u"devětset", u"tisíc"]): - systemSounds.append((s, filename(PROMPT_SYSTEM_BASE+100+i))) - for i, s in enumerate([u"tisíce", "jeden", "jedno", u"dvě", u"celá", u"celé", u"celých", u"mínus"]): - systemSounds.append((s, filename(PROMPT_SYSTEM_BASE+110+i))) - - for i, s in enumerate(["volt", "volty", u"voltů", "voltu", - u"ampér", u"ampéry", u"ampérů", u"ampéru", - u"miliampér", u"miliampéry", u"miliampérů", u"miliampéru", - u"uzel", u"uzly", u"uzlů", u"uzlu", - "metr za sekundu", "metry za sekundu", u"metrů za sekundu", "metru za sekundu", - "stopa za sekundu", "stopy za sekundu", "stop za sekundu", "stopy za sekundu", - "kilometr za hodinu", "kilometry za hodinu", u"kilometrů za hodinu", "kilometru za hodinu", - u"míle za hodinu", u"míle za hodinu", u"mil za hodinu", u"míle za hodinu", - "metr", "metry", u"metrů", "metru", - "stopa", "stopy", "stop", "stopy", - u"stupeň celsia", u"stupně celsia", u"stupňů celsia", u"stupně celsia", - u"stupeň fahrenheita", u"stupně fahrenheita", u"stupňů fahrenheita", u"stupně fahrenheita", - "procento", "procenta", "procent", "procenta", - u"miliampérhodina", u"miliampérhodiny", u"miliampérhodin", u"miliampérhodiny", - "vat", "vaty", u"vatů", "vatu", - "decibel", "decibely", u"decibelů", "decibelu", - u"otáčka za minutu", u"otáčky za minutu", u"otáček za minutu", u"otáčky za minutu", - u"gé", u"gé", u"gé", u"gé" - u"stupeň", u"stupně", u"stupňů", u"stupně", - u"mililitr", u"mililitry", u"mililitrů", "mililitru", - u"dutá unce", u"duté unce", u"dutých uncí", u"duté unce", - "hodina", "hodiny", "hodin", "hodiny", - "minuta", "minuty", "minut", "minuty", - "sekunda", "sekundy", "sekund", "sekundy", - ]): - systemSounds.append((s, filename(PROMPT_SYSTEM_BASE+118+i))) - - for s, f, a in [(u"střed trimu", "midtrim", 495), - (u"maximum trimu", "endtrim", NO_ALTERNATE), - (u"baterie rádia je vybitá", "lowbatt", 485), - (u"zapoměl jsi na mě!", "inactiv", 486), - (u"plyn není na nule", "thralert", 481), - (u"přepínače nejsou ve výchozí poloze", "swalert", 482), - (u"neplatná eeprom", "eebad", 483), - (u"Oupn najn iks", "tada", 480), - (u"dvacet sekund", "timer20", 500), - (u"třicet sekund", "timer30", 501), - (u"A1,nízká", "a1_org", NO_ALTERNATE), - (u"A1,kritická", "a1_red", NO_ALTERNATE), - (u"A2,nízká", "a2_org", NO_ALTERNATE), - (u"A2,kritická", "a2_red", NO_ALTERNATE), - (u"A3,nízká", "a3_org", NO_ALTERNATE), - (u"A3,kritická", "a3_red", NO_ALTERNATE), - (u"A4,nízká", "a4_org", NO_ALTERNATE), - (u"A4,kritická", "a4_red", NO_ALTERNATE), - (u"nízký RF signál", "rssi_org", NO_ALTERNATE), - (u"kritický RF signál", "rssi_red", NO_ALTERNATE), - (u"problém s anténou rádia", "swr_red", NO_ALTERNATE), - (u"telemetrie ztracena", "telemko", NO_ALTERNATE), - (u"telemetrie je funkční", "telemok", NO_ALTERNATE), - (u"trenér port odpojen", "trainko", NO_ALTERNATE), - (u"trenér port připojen", "trainok", NO_ALTERNATE), - ]: - systemSounds.append((s, filename(f, a))) - for i, (s, f) in enumerate([ - (u"podvozek je zasunut", "podvoz0"), - (u"podvozek je vysunut", "podvoz1"), - (u"klapky jsou zapnuty", "klapky1"), - (u"klapky jsou vypnuty", "klapky0"), - (u"trenér je zapnut", "trener1"), - (u"trenér je vypnutý", "trener0"), - (u"motor je vypnut", "motor0"), - (u"motor je aktivován", "motor1"), - (u"jsi příliš vysoko", "vysoko"), - (u"jsi příliš nízko", "nizko"), - (u"baterie modelu je vybitá", "batvybit"), - (u"dochází palivo", "palivo"), - (u"nízký signál!", "nsignal"), - (u"kritický signál!", "ksignal"), - (u"rychlý režim aktivován", "r_rychly"), - (u"termický režim aktivován", "r_termik"), - (u"normální režim aktivován", "r_norm"), - (u"režim start aktivován", "r_start"), - (u"režim přistání aktivován", "r_prista"), - (u"vario je zapnuto", "vario0"), - (u"vario je vypnuto", "vario1"), - (u"start povolen", "startok"), - ]): - sounds.append((s, filename(f, PROMPT_CUSTOM_BASE+i))) - return systemSounds, sounds - -################################################################ - if __name__ == "__main__": - + if "sky9x" in sys.argv: board = "sky9x" PROMPT_CUSTOM_BASE = 256 PROMPT_SYSTEM_BASE = 0 - elif "taranis" in sys.argv: + elif "taranis" in sys.argv: board = "taranis" PROMPT_CUSTOM_BASE = 256 - PROMPT_SYSTEM_BASE = 0 + PROMPT_SYSTEM_BASE = 0 elif "gruvin9x" in sys.argv: board = "gruvin9x" PROMPT_CUSTOM_BASE = 0 @@ -784,60 +168,63 @@ if __name__ == "__main__": if "list" in sys.argv: print(tts.GetVoiceNames()) exit() - + if "mulaw" in sys.argv: defaultcodec = "pcm_mulaw" else: defaultcodec = "pcm_alaw" - + if "en" in sys.argv: + from tts_en import systemSounds, sounds + directory = "en" voice = "english" if "sapi" in sys.argv: if "scottish" in sys.argv: tts.SetVoiceByName("ScanSoftFiona_Full_22kHz") voice = "english-scottish" - elif "american" in sys.argv: - tts.SetVoiceByName("ScanSoftJennifer_Full_22kHz") - voice = "english-american" - elif "australian" in sys.argv: + elif "american" in sys.argv: + tts.SetVoiceByName("ScanSoftJennifer_Full_22kHz") + voice = "english-american" + elif "australian" in sys.argv: tts.SetVoiceByName("ScanSoftKaren_Full_22kHz") - voice = "english-australian" + voice = "english-australian" elif "irish" in sys.argv: tts.SetVoiceByName("ScanSoftMoira_Full_22kHz") - voice = "english-irish" + voice = "english-irish" else: tts.SetVoiceByName("ScanSoftFiona_Full_22kHz") voice = "english-english" elif "sapi2" in sys.argv: if "scottish" in sys.argv: - voiceID = "17" - voice = "english-scottish" - elif "american" in sys.argv: - voiceID = "18" - voice = "english-american" - elif "australian" in sys.argv: - voiceID = "20" - voice = "english-australian" + voiceID = "17" + voice = "english-scottish" + elif "american" in sys.argv: + voiceID = "18" + voice = "english-american" + elif "australian" in sys.argv: + voiceID = "20" + voice = "english-australian" elif "irish" in sys.argv: - voiceID = "21" - voice = "english-irish" + voiceID = "21" + voice = "english-irish" elif "french" in sys.argv: - voiceID = "19" - voice = "english-french" + voiceID = "19" + voice = "english-french" elif "german" in sys.argv: - voiceID = "22" - voice = "english-german" + voiceID = "22" + voice = "english-german" else: - voiceID = "17" - voice = "english-english" - + voiceID = "17" + voice = "english-english" + elif "espeak" in sys.argv: espeakVoice = "mb-us1" espeakspeed = "150" - systemSounds, sounds = ttsEn() - + elif "fr" in sys.argv: + from tts_fr import systemSounds, sounds + directory = "fr" voice = "french" if "sapi" in sys.argv: @@ -845,9 +232,10 @@ if __name__ == "__main__": elif "espeak" in sys.argv: espeakVoice = "mb-fr4+f4" espeakspeed = "140" - systemSounds, sounds = ttsFr() - + elif "it" in sys.argv: + from tts_it import systemSounds, sounds + directory = "it" voice = "italian" if "sapi" in sys.argv: @@ -855,9 +243,10 @@ if __name__ == "__main__": elif "espeak" in sys.argv: espeakVoice = "mb-it4" espeakspeed = "160" - systemSounds, sounds = ttsIt() - + elif "de" in sys.argv: + from tts_de import systemSounds, sounds + directory = "de" voice = "german" if "sapi" in sys.argv: @@ -865,9 +254,10 @@ if __name__ == "__main__": elif "espeak" in sys.argv: espeakVoice = "mb-de4" espeakspeed = "160" - systemSounds, sounds = ttsDe() elif "pt" in sys.argv: + from tts_pt import systemSounds, sounds + directory = "pt" voice = "portuguese" if "sapi" in sys.argv: @@ -875,9 +265,10 @@ if __name__ == "__main__": elif "espeak" in sys.argv: espeakVoice = "mb-pt1+f1" espeakspeed = "160" - systemSounds, sounds = ttsPt() elif "es" in sys.argv: + from tts_es import systemSounds, sounds + directory = "es" voice = "spanish" if "sapi" in sys.argv: @@ -885,57 +276,55 @@ if __name__ == "__main__": elif "espeak" in sys.argv: espeakVoice = "mb-es1+f1" espeakspeed = "160" - systemSounds, sounds = ttsEs() - + elif "cz" in sys.argv: + from tts_cz import systemSounds, sounds + directory = "cz" - voice = "czech" + voice = "czech" if "sapi" in sys.argv: tts.SetVoiceByName("ScanSoftZuzana_Full_22kHz") elif "espeak" in sys.argv: espeakVoice = "mb-cz2" espeakspeed = "150" - systemSounds, sounds = ttsCz() - + else: print("which language?") - exit() - + exit() + if "csv" in sys.argv: - csvFile = open("%s-%s.csv" % (voice, board), "w") - for s, f in systemSounds: - if s and f: - l = u"" - if board in ("sky9x", "taranis"): - l += u"SOUNDS/%s/SYSTEM;" % directory - l += f + u";" + s + u"\n" - csvFile.write(l.encode("utf-8")) - for s, f in sounds: - if s and f: - l = u"" - if board in ("sky9x", "taranis"): - l += u"SOUNDS/%s;" % directory - l += f + u";" + s + u"\n" - csvFile.write(l.encode("utf-8")) - csvFile.close() - + with open("%s-%s.csv" % (voice, board), "w") as csvFile: + for s, f in systemSounds: + if s and f: + l = u"" + if board in ("sky9x", "taranis"): + l += u"SOUNDS/%s/SYSTEM;" % directory + l += f + u";" + s + u"\n" + csvFile.write(l.encode("utf-8")) + for s, f in sounds: + if s and f: + l = u"" + if board in ("sky9x", "taranis"): + l += u"SOUNDS/%s;" % directory + l += f + u";" + s + u"\n" + csvFile.write(l.encode("utf-8")) + if "zip" in sys.argv: zip_name = "%s-%s.zip" % (voice, board) - zip = zipfile.ZipFile(zip_name, "w", zipfile.ZIP_DEFLATED) - for s, f in systemSounds: - if s and f: - generate(s, f) - if board in ("sky9x", "taranis"): - zip.write(f, "SOUNDS/%s/SYSTEM/" % directory + f) - else: - zip.write(f, f) - os.remove(f) - for s, f in sounds: - if s and f: - generate(s, f) - if board in ("sky9x", "taranis"): - zip.write(f, "SOUNDS/%s/" % directory + f) - else: - zip.write(f, f) - os.remove(f) - zip.close() + with zipfile.ZipFile(zip_name, "w", zipfile.ZIP_DEFLATED) as zip: + for s, f in systemSounds: + if s and f: + generate(s, f) + if board in ("sky9x", "taranis"): + zip.write(f, "SOUNDS/%s/SYSTEM/" % directory + f) + else: + zip.write(f, f) + os.remove(f) + for s, f in sounds: + if s and f: + generate(s, f) + if board in ("sky9x", "taranis"): + zip.write(f, "SOUNDS/%s/" % directory + f) + else: + zip.write(f, f) + os.remove(f) diff --git a/radio/util/tts_cz.py b/radio/util/tts_cz.py new file mode 100644 index 000000000..94ee32d59 --- /dev/null +++ b/radio/util/tts_cz.py @@ -0,0 +1,98 @@ +# -*- coding: utf-8 -*- + +# Czech language sounds configuration + +from tts import filename, NO_ALTERNATE, PROMPT_SYSTEM_BASE, PROMPT_CUSTOM_BASE + + +systemSounds = [] +sounds = [] + +for i, s in enumerate(["nula", "jedna", "dva"]): + systemSounds.append((s, filename(PROMPT_SYSTEM_BASE + i))) +for i in range(97): + systemSounds.append((str(3 + i), filename(PROMPT_SYSTEM_BASE + 3 + i))) +for i, s in enumerate(["sto", u"dvěsta", u"třista", u"čtyřista", u"pětset", u"šestset", "sedmset", "osmset", + u"devětset", u"tisíc"]): + systemSounds.append((s, filename(PROMPT_SYSTEM_BASE + 100 + i))) +for i, s in enumerate([u"tisíce", "jeden", "jedno", u"dvě", u"celá", u"celé", u"celých", u"mínus"]): + systemSounds.append((s, filename(PROMPT_SYSTEM_BASE + 110 + i))) + +for i, s in enumerate(["volt", "volty", u"voltů", "voltu", + u"ampér", u"ampéry", u"ampérů", u"ampéru", + u"miliampér", u"miliampéry", u"miliampérů", u"miliampéru", + u"uzel", u"uzly", u"uzlů", u"uzlu", + "metr za sekundu", "metry za sekundu", u"metrů za sekundu", "metru za sekundu", + "stopa za sekundu", "stopy za sekundu", "stop za sekundu", "stopy za sekundu", + "kilometr za hodinu", "kilometry za hodinu", u"kilometrů za hodinu", "kilometru za hodinu", + u"míle za hodinu", u"míle za hodinu", u"mil za hodinu", u"míle za hodinu", + "metr", "metry", u"metrů", "metru", + "stopa", "stopy", "stop", "stopy", + u"stupeň celsia", u"stupně celsia", u"stupňů celsia", u"stupně celsia", + u"stupeň fahrenheita", u"stupně fahrenheita", u"stupňů fahrenheita", u"stupně fahrenheita", + "procento", "procenta", "procent", "procenta", + u"miliampérhodina", u"miliampérhodiny", u"miliampérhodin", u"miliampérhodiny", + "vat", "vaty", u"vatů", "vatu", + "decibel", "decibely", u"decibelů", "decibelu", + u"otáčka za minutu", u"otáčky za minutu", u"otáček za minutu", u"otáčky za minutu", + u"gé", u"gé", u"gé", u"gé" + u"stupeň", u"stupně", u"stupňů", u"stupně", + u"mililitr", u"mililitry", u"mililitrů", "mililitru", + u"dutá unce", u"duté unce", u"dutých uncí", u"duté unce", + "hodina", "hodiny", "hodin", "hodiny", + "minuta", "minuty", "minut", "minuty", + "sekunda", "sekundy", "sekund", "sekundy", + ]): + systemSounds.append((s, filename(PROMPT_SYSTEM_BASE + 118 + i))) + +for s, f, a in [(u"střed trimu", "midtrim", 495), + (u"maximum trimu", "endtrim", NO_ALTERNATE), + (u"baterie rádia je vybitá", "lowbatt", 485), + (u"zapoměl jsi na mě!", "inactiv", 486), + (u"plyn není na nule", "thralert", 481), + (u"přepínače nejsou ve výchozí poloze", "swalert", 482), + (u"neplatná eeprom", "eebad", 483), + (u"Oupn najn iks", "tada", 480), + (u"dvacet sekund", "timer20", 500), + (u"třicet sekund", "timer30", 501), + (u"A1,nízká", "a1_org", NO_ALTERNATE), + (u"A1,kritická", "a1_red", NO_ALTERNATE), + (u"A2,nízká", "a2_org", NO_ALTERNATE), + (u"A2,kritická", "a2_red", NO_ALTERNATE), + (u"A3,nízká", "a3_org", NO_ALTERNATE), + (u"A3,kritická", "a3_red", NO_ALTERNATE), + (u"A4,nízká", "a4_org", NO_ALTERNATE), + (u"A4,kritická", "a4_red", NO_ALTERNATE), + (u"nízký RF signál", "rssi_org", NO_ALTERNATE), + (u"kritický RF signál", "rssi_red", NO_ALTERNATE), + (u"problém s anténou rádia", "swr_red", NO_ALTERNATE), + (u"telemetrie ztracena", "telemko", NO_ALTERNATE), + (u"telemetrie je funkční", "telemok", NO_ALTERNATE), + (u"trenér port odpojen", "trainko", NO_ALTERNATE), + (u"trenér port připojen", "trainok", NO_ALTERNATE), + ]: + systemSounds.append((s, filename(f, a))) +for i, (s, f) in enumerate([(u"podvozek je zasunut", "podvoz0"), + (u"podvozek je vysunut", "podvoz1"), + (u"klapky jsou zapnuty", "klapky1"), + (u"klapky jsou vypnuty", "klapky0"), + (u"trenér je zapnut", "trener1"), + (u"trenér je vypnutý", "trener0"), + (u"motor je vypnut", "motor0"), + (u"motor je aktivován", "motor1"), + (u"jsi příliš vysoko", "vysoko"), + (u"jsi příliš nízko", "nizko"), + (u"baterie modelu je vybitá", "batvybit"), + (u"dochází palivo", "palivo"), + (u"nízký signál!", "nsignal"), + (u"kritický signál!", "ksignal"), + (u"rychlý režim aktivován", "r_rychly"), + (u"termický režim aktivován", "r_termik"), + (u"normální režim aktivován", "r_norm"), + (u"režim start aktivován", "r_start"), + (u"režim přistání aktivován", "r_prista"), + (u"vario je zapnuto", "vario0"), + (u"vario je vypnuto", "vario1"), + (u"start povolen", "startok"), + ]): + sounds.append((s, filename(f, PROMPT_CUSTOM_BASE + i))) diff --git a/radio/util/tts_de.py b/radio/util/tts_de.py new file mode 100644 index 000000000..647073522 --- /dev/null +++ b/radio/util/tts_de.py @@ -0,0 +1,85 @@ +# -*- coding: utf-8 -*- + +# German language sounds configuration + +from tts import filename, NO_ALTERNATE, PROMPT_SYSTEM_BASE, PROMPT_CUSTOM_BASE + + +systemSounds = [] +sounds = [] + +for i in range(101): + systemSounds.append((str(i), filename(PROMPT_SYSTEM_BASE + i))) +systemSounds.append(("tausend", filename(PROMPT_SYSTEM_BASE + 101))) +for i, s in enumerate(["comma", "und", "minus", "uhr", "minute", "minuten", "sekunde", "sekunden"]): + systemSounds.append((s, filename(PROMPT_SYSTEM_BASE + 102 + i))) +for i, s in enumerate(["", "Volt", "Ampere", "MilliAmpere", "Knoten", + "Meter pro sekunde", "Fuesse pro sekunde", + "kilometer pro stunde", "Meilen pro Stunde", "Meter", + "Fuesse", "Grad", "Grad Fahrenheit", "Prozent", + "Milliampere pro stunde", "Watt", "db", "R P M", "g", + "Milliliter", "Unze", "Uhr", "Minuten", "Secunden"]): + systemSounds.append((s, filename(PROMPT_SYSTEM_BASE + 110 + i))) +for s, f, a in [(u"Sender ist inaktiv,bitte Ueberpruefen Sie", "inactiv", 486), + (u"Senderakku niedrig", "lowbatt", 485), + (u"Gaskanal nicht Null, bitte pruefen", "thralert", 481), + (u"Schalten fehlpositioniert, bitte pruefen", "swalert", 482), + (u"Das EEPROM ist fehlerhaft", "eebad", NO_ALTERNATE), + (u"Das EEPROM ist immer formatiert", "eeformat", NO_ALTERNATE), + (u"fehler", "error", NO_ALTERNATE), + (u"Trim zentriert", "midtrim", 495), + (u"Poti zentriert", "midpot", 496), + (u"Maximale trimmung erreicht", "endtrim", NO_ALTERNATE), + (u"20 sekunden", "timer20", 500), + (u"30 sekunden", "timer30", 501), + (u"Senderstrom ist zu hoch!", "highmah", NO_ALTERNATE), + (u"Sendertemperatur ist zu hoch!", "hightemp", NO_ALTERNATE), + (u"A1 schlecht!", "a1_org", NO_ALTERNATE), + (u"A1 kritisch!", "a1_red", NO_ALTERNATE), + (u"A2 schlecht!", "a2_org", NO_ALTERNATE), + (u"A2 kritisch!", "a2_red", NO_ALTERNATE), + (u"A3 schlecht!", "a3_org", NO_ALTERNATE), + (u"A3 kritisch!", "a3_red", NO_ALTERNATE), + (u"A4 schlecht!", "a4_org", NO_ALTERNATE), + (u"A4 kritisch!", "a4_red", NO_ALTERNATE), + (u"Funksignal schlecht!", "rssi_org", NO_ALTERNATE), + (u"Funksignal kritisch!", "rssi_red", NO_ALTERNATE), + (u"Problem mit der sender Antenna", "swr_red", NO_ALTERNATE), + (u"Telemetrie verloren", "telemko", NO_ALTERNATE), + (u"Telemetrie wiederhergestellt", "telemok", NO_ALTERNATE), + (u"Schülersignal verloren", "trainko", NO_ALTERNATE), + (u"Schülersignal wiederhergestellt", "trainok", NO_ALTERNATE), + ]: + systemSounds.append((s, filename(f, a))) +for i, s in enumerate(["Timer", "Timer", "Sendung", "Empfang", "A1", "A2", "Hoehe", "Motor", + "Treibstoff", "Temperatur", "Temperatur", "Geschwindigkeit", "Ferne", "Hoehe", "Lipo-Zelle", + "Zellen gesamt", "Spannung", "Strom", "Verbrauch", "Power", "Beschleunigung X", "Beschleunigung Y", "Beschleunigung Z", + "Richtung", "Variometer", "Minimum", "Maximum"]): + systemSounds.append((s, filename(PROMPT_SYSTEM_BASE + 134 + i))) +for i, (s, f) in enumerate([(u"Fahrwerk eingezogen", "gearup"), + (u"Fahrwerk ausgefahren", "geardn"), + (u"Klappen eingefahren", "flapup"), + (u"Klappen ausgefahren", "flapdn"), + (u"Landung", "attero"), + (u"Trainer-Modus ein", "trnon"), + (u"Trainer-Modus aus", "trnoff"), + (u"Motor aus", "engoff"), + (u"zu hoch", "tohigh"), + (u"zu niedrig", "tolow"), + (u"Batterie schwach", "lowbat"), + (u"crow ein", "crowon"), + (u"crow aus", "crowof"), + (u"Schnell-Modus ist aktiviert", "spdmod"), + (u"Thermik-Modus ist aktiviert", "thmmod"), + (u"Normal-Modus ist aktiviert", "nrmmod"), + (u"Regime 1", "fltmd1"), + (u"Regime 2", "fltmd2"), + (u"Regime 3", "fltmd3"), + (u"Regime 4", "fltmd4"), + (u"Regime 5", "fltmd5"), + (u"Regime 6", "fltmd6"), + (u"Regime 7", "fltmd7"), + (u"Regime 8", "fltmd8"), + (u"Regime 9", "fltmd9"), + ]): + sounds.append((s, filename(f, PROMPT_CUSTOM_BASE + i))) diff --git a/radio/util/tts_en.py b/radio/util/tts_en.py new file mode 100644 index 000000000..e7796d323 --- /dev/null +++ b/radio/util/tts_en.py @@ -0,0 +1,120 @@ +# -*- coding: utf-8 -*- + +# English language sounds configuration + +from tts import filename, NO_ALTERNATE, PROMPT_SYSTEM_BASE, PROMPT_CUSTOM_BASE + + +systemSounds = [] +sounds = [] + +for i in range(100): + systemSounds.append((str(i), filename(PROMPT_SYSTEM_BASE + i))) +for i in range(9): + systemSounds.append((str(100 * (i + 1)), filename(PROMPT_SYSTEM_BASE + 100 + i))) +for i, s in enumerate(["thousand", "and", "minus", "point"]): + systemSounds.append((s, filename(PROMPT_SYSTEM_BASE + 109 + i))) +for i, s in enumerate(["volt", "volts", + "amp", "amps", + "milliamp", "milliamps", + "knot", "knots", + "meter per second", "meters per second", + "foot per second", "feet per second", + "kilometer per hour", "kilometers per hour", + "mile per hour", "miles per hour", + "meter", "meters", + "foot", "feet", + "degree celsius", "degrees celsius", + "degree fahrenheit", "degrees fahrenheit", + "percent", "percent", + "milliamp-hour", "milliamp-hours", + "watt", "watts", + "db", "db", + "r p m", "r p m", + "g", "g", + "degree", "degrees", + "milliliter", "milliliters", + "fluid ounce", "fluid ounces", + "hour", "hours", + "minute", "minutes", + "second", "seconds", + ]): + systemSounds.append((s, filename(PROMPT_SYSTEM_BASE + 115 + i))) +for i, s in enumerate(["point zero", "point one", "point two", "point three", + "point four", "point five", "point six", + "point seven", "point eight", "point nine"]): + systemSounds.append((s, filename(PROMPT_SYSTEM_BASE + 165 + i))) +for s, f, a in [(u"trim center", "midtrim", 495), + (u"maximum trim reached", "endtrim", NO_ALTERNATE), + (u"transmitter battery low", "lowbatt", 485), + (u"inactivity alarm", "inactiv", 486), + (u"throttle warning", "thralert", 481), + (u"switch warning", "swalert", 482), + (u"bad eeprom", "eebad", 483), + (u"Welcome to open tea ex!", "tada", 480), + (u"twenty. seconds", "timer20", 500), + (u"thirty. seconds", "timer30", 501), + (u"A1,low", "a1_org", NO_ALTERNATE), + (u"A1,critical", "a1_red", NO_ALTERNATE), + (u"A2,low", "a2_org", NO_ALTERNATE), + (u"A2,critical", "a2_red", NO_ALTERNATE), + (u"A3,low", "a3_org", NO_ALTERNATE), + (u"A3,critical", "a3_red", NO_ALTERNATE), + (u"A4,low", "a4_org", NO_ALTERNATE), + (u"A4,critical", "a4_red", NO_ALTERNATE), + (u"RF signal, low", "rssi_org", NO_ALTERNATE), + (u"RF signal, critical", "rssi_red", NO_ALTERNATE), + (u"radio antenna defective", "swr_red", NO_ALTERNATE), + (u"telemetry lost", "telemko", NO_ALTERNATE), + (u"telemetry recovered", "telemok", NO_ALTERNATE), + (u"trainer signal lost", "trainko", NO_ALTERNATE), + (u"trainer signal recovered", "trainok", NO_ALTERNATE), + ]: + systemSounds.append((s, filename(f, a))) +for i, (s, f) in enumerate([(u"gear!, up!", "gearup"), + (u"gear!, down!", "geardn"), + (u"flaps!, up!", "flapup"), + (u"flaps!, down!", "flapdn"), + (u"spoiler!, up!", "splrup"), + (u"spoiler!, down!", "splrdn"), + (u"trainer!, on!", "trnon"), + (u"trainer!, off!", "trnoff"), + (u"engine!, off!", "engoff"), + (u"too. high!", "tohigh"), + (u"too. low!", "tolow"), + (u"low. battery!", "lowbat"), + (u"crow!, on!", "crowon"), + (u"crow!, off!", "crowof"), + (u"rf. signal!, low!", "siglow"), + (u"rf. signal!, critical!", "sigcrt"), + (u"high. speed. mode!, active", "spdmod"), + (u"thermal. mode!, on", "thmmod"), + (u"normal. mode!, on", "nrmmod"), + (u"landing. mode!, on", "lnding"), + (u"acro. mode!, on", "acro"), + (u"flight. mode!, one", "fm-1"), + (u"flight. mode!, two", "fm-2"), + (u"flight. mode!, three", "fm-3"), + (u"flight. mode!, four", "fm-4"), + (u"flight. mode!, five", "fm-5"), + (u"flight. mode!, six", "fm-6"), + (u"flight. mode!, seven", "fm-7"), + (u"flight. mode!, eight", "fm-8"), + (u"vario!, on", "vrion"), + (u"vario!, off", "vrioff"), + (u"flight mode!, power", "fm-pwr"), + (u"flight mode!, land", "fm-lnd"), + (u"flight mode!, float", "fm-flt"), + (u"flight mode!, speed", "fm-spd"), + (u"flight mode!, fast", "fm-fst"), + (u"flight mode!, normal", "fm-nrm"), + (u"flight mode!, cruise", "fm-crs"), + (u"flight mode!, acro", "fm-acr"), + (u"flight mode!, race", "fm-rce"), + (u"flight mode!, launch", "fm-lch"), + (u"flight mode!, ping", "fm-png"), + (u"flight mode!, thermal", "fm-thm"), + (u"flight mode!, thermal left", "fm-thml"), + (u"flight mode!, thermal right", "fm-thmr"), + ]): + sounds.append((s, filename(f, PROMPT_CUSTOM_BASE + i))) diff --git a/radio/util/tts_es.py b/radio/util/tts_es.py new file mode 100644 index 000000000..d3de61c3d --- /dev/null +++ b/radio/util/tts_es.py @@ -0,0 +1,83 @@ +# -*- coding: utf-8 -*- + +# Spanish language sounds configuration + +from tts import filename, NO_ALTERNATE, PROMPT_SYSTEM_BASE, PROMPT_CUSTOM_BASE + + +systemSounds = [] +sounds = [] + +for i in range(101): + systemSounds.append((str(i), filename(PROMPT_SYSTEM_BASE + i))) +systemSounds.append(("ciento", filename(PROMPT_SYSTEM_BASE + 101))) +systemSounds.append(("doscientos", filename(PROMPT_SYSTEM_BASE + 102))) +systemSounds.append(("trescientos", filename(PROMPT_SYSTEM_BASE + 103))) +systemSounds.append(("cuatrocientos", filename(PROMPT_SYSTEM_BASE + 104))) +systemSounds.append(("quinientos", filename(PROMPT_SYSTEM_BASE + 105))) +systemSounds.append(("sescientos", filename(PROMPT_SYSTEM_BASE + 106))) +systemSounds.append(("setecientos", filename(PROMPT_SYSTEM_BASE + 107))) +systemSounds.append(("ochocientos", filename(PROMPT_SYSTEM_BASE + 108))) +systemSounds.append(("nuevecientos", filename(PROMPT_SYSTEM_BASE + 109))) +systemSounds.append(("mil", filename(PROMPT_SYSTEM_BASE + 110))) +for i, s in enumerate(["coma", "un", "una", "y", "meno", "hora", "horas", "minuto", "minutos", "segundo", "segundos"]): + systemSounds.append((s, filename(PROMPT_SYSTEM_BASE + 111 + i))) +for i, s in enumerate([u"Voltio", u"ampério", u"metros por segundo", u"", u"kilómetro por hora", u"metros", u"grados", u"por ciento", u"miliamperios", u"miliamperios por hora", u"vatio", u"db", u"pés", u"nós", u"horas", u"minutos", u"segundos", u"RPM", u"g", u"mililitro", u"onzas"]): + systemSounds.append((s, filename(PROMPT_SYSTEM_BASE + 122 + i))) +for s, f, a in [(u"me tienes abandonada", "inactiv", 486), + (u"batería del transmisor baja", "lowbatt", 485), + (u"El acelerador está activado, por favor, corrijalo", "thralert", 481), + (u"Los interruptores no están en la posición correcta, por favor corrijalo", "swalert", 482), + (u"eeprom corrompida", "eebad", NO_ALTERNATE), + (u"Formateo de eeprom en curso", "eeformat", NO_ALTERNATE), + (u"error", "error", NO_ALTERNATE), + (u"trim centrado", "midtrim", 495), + (u"potenciómetro centrado", "midpot", 496), + (u"trim al máximo", "endtrim", NO_ALTERNATE), + (u"20 segundos", "timer20", 500), + (u"30 segundos", "timer30", 501), + (u"assorbimiento elevado", "highmah", NO_ALTERNATE), + (u"temperatura elevada", "hightemp", NO_ALTERNATE), + (u"Alarma A1", "a1_org", NO_ALTERNATE), + (u"A1 crítica", "a1_red", NO_ALTERNATE), + (u"Alarma A2", "a2_org", NO_ALTERNATE), + (u"A2 crítica", "a2_red", NO_ALTERNATE), + (u"recepcion de señal baja", "rssi_org", NO_ALTERNATE), + (u"recepción de señal crítica", "rssi_red", NO_ALTERNATE), + (u"Problemas con la antena del transmisor", "swr_red", NO_ALTERNATE), + (u"Sin telemetría", "telemko", NO_ALTERNATE), + (u"Telemetría disponible", "telemok", NO_ALTERNATE), + ]: + systemSounds.append((s, filename(f, a))) +for i, s in enumerate([u"cronómetro", u"cronómetro", u"transmisión", u"recepción", u"A1", u"A2", u"altitud", u"motor", + u"combustible", u"temperatura", u"temperatura", u"velocidad", u"distancia", u"altitude", u"célula lipo", + u"Total lipo", u"voltaje", u"corriente", u"consumo", u"potencia", u"aceleración X", u"aceleración Y", u"aceleración Z", + u"dirección", u"variómetro", u"minimo", u"máximo"]): + systemSounds.append((s, filename(PROMPT_SYSTEM_BASE + 141 + i))) +for i, (s, f) in enumerate([(u"tren arriba.", "gearup"), + (u"tren abajo.", "geardn"), + (u"flaps arriba", "flapup"), + (u"flaps abajo", "flapdn"), + (u"aterrizaje", "attero"), + (u"modo de entrenamiento activado", "trnon"), + (u"modo de entrenamiento deshabilitado", "trnoff"), + (u"motor apagado", "engoff"), + (u"muy alto", "tohigh"), + (u"muy bajo", "tolow"), + (u"bateria baja", "lowbat"), + (u"crou, activo", "crowon"), + (u"crou, desligado", "crowof"), + (u"modo de velocidad", "spdmod"), + (u"modo de térmica", "thmmod"), + (u"modo de vuelo normal", "nrmmod"), + (u"fase de vuelo 1", "fltmd1"), + (u"fase de vuelo 2", "fltmd2"), + (u"fase de vuelo 3", "fltmd3"), + (u"fase de vuelo 4", "fltmd4"), + (u"fase de vuelo 5", "fltmd5"), + (u"fase de vuelo 6", "fltmd6"), + (u"fase de vuelo 7", "fltmd7"), + (u"fase de vuelo 8", "fltmd8"), + (u"fase de vuelo 9", "fltmd9"), + ]): + sounds.append((s, filename(f, PROMPT_CUSTOM_BASE + i))) diff --git a/radio/util/tts_fr.py b/radio/util/tts_fr.py new file mode 100644 index 000000000..ea8145441 --- /dev/null +++ b/radio/util/tts_fr.py @@ -0,0 +1,67 @@ +# -*- coding: utf-8 -*- + +# French language sounds configuration + +from tts import filename, NO_ALTERNATE, PROMPT_SYSTEM_BASE, PROMPT_CUSTOM_BASE + + +systemSounds = [] +sounds = [] + +for i in range(100): + systemSounds.append((str(i), filename(PROMPT_SYSTEM_BASE + i))) +for i in range(10): + systemSounds.append((str(100 * (i + 1)), filename(PROMPT_SYSTEM_BASE + 100 + i))) +for i, s in enumerate(["une", "onze", "vingt et une", "trente et une", "quarante et une", "cinquante et une", "soixante et une", "soixante et onze", "quatre vingt une"]): + systemSounds.append((s, filename(PROMPT_SYSTEM_BASE + 110 + i))) +for i, s in enumerate(["virgule", "et", "moins", "minuit", "midi"]): + systemSounds.append((s, filename(PROMPT_SYSTEM_BASE + 119 + i))) +for i, s in enumerate(["volts", u"ampères", u"milli ampères", u"knots", u"mètres seconde", u"pieds par seconde", u"kilomètre heure", u"miles par heure", u"mètres", "pieds", u"degrés", u"degrés fahrenheit", "pourcents", u"milli ampères / heure", "watt", "db", "tours minute", "g", u"degrés", "millilitres", "onces", "heure", "minute", "seconde"]): + systemSounds.append((s, filename(PROMPT_SYSTEM_BASE + 125 + i))) +# for i, s in enumerate(["timer", "", "tension", "tension", u"émission", u"réception", "altitude", "moteur", +# "essence", u"température", u"température", "vitesse", "distance", "altitude", u"élément lipo", +# "total lipo", "tension", "courant", "consommation", "puissance", u"accelération X", u"accelération Y", u"accelération Z", +# "orientation", "vario"]): +# systemSounds.append((s, filename(PROMPT_SYSTEM_BASE+146+i))) +for i, s in enumerate(["virgule 0", "virgule 1", "virgule 2", "virgule 3", "virgule 4", "virgule 5", "virgule 6", "virgule 7", "virgule 8", "virgule 9"]): + systemSounds.append((s, filename(PROMPT_SYSTEM_BASE + 180 + i))) +for s, f, a in [(u"Trim centré", "midtrim", 495), + (u"Trim maximum atteint", "endtrim", NO_ALTERNATE), + (u"Batterie radio faible !", "lowbatt", 485), + (u"Radio inactive !", "inactiv", 486), + (u"Alerte manche des gaz", "thralert", 481), + (u"Alerte inters", "swalert", 482), + (u"éprome corrompue", "eebad", 483), + (u"Bienvenue sur Open TI X!", "tada", 480), + (u"vingt secondes", "timer20", 500), + (u"trente secondes", "timer30", 501), + (u"A1,faible", "a1_org", NO_ALTERNATE), + (u"A1,critique", "a1_red", NO_ALTERNATE), + (u"A2,faible", "a2_org", NO_ALTERNATE), + (u"A2,critique", "a2_red", NO_ALTERNATE), + (u"A3,faible", "a3_org", NO_ALTERNATE), + (u"A3,critique", "a3_red", NO_ALTERNATE), + (u"A4,faible", "a4_org", NO_ALTERNATE), + (u"A4,critique", "a4_red", NO_ALTERNATE), + (u"Signal RF, faible", "rssi_org", NO_ALTERNATE), + (u"Signal RF, critique", "rssi_red", NO_ALTERNATE), + (u"Antenne défectueuse", "swr_red", NO_ALTERNATE), + (u"Plus de télémétrie", "telemko", NO_ALTERNATE), + (u"Télémétrie retrouvée", "telemok", NO_ALTERNATE), + (u"Signal écolage perdu", "trainko", NO_ALTERNATE), + (u"Signal écolage retrouvé", "trainok", NO_ALTERNATE), + ]: + systemSounds.append((s, filename(f, a))) +for i, (s, f) in enumerate([(u"altitude", "altitude"), + (u"température moteur", "moteur"), + (u"température contrôleur", "cntrleur"), + (u"train rentré", "gearup"), + (u"train sorti", "geardn"), + (u"volets rentrés", "flapup"), + (u"volets sortis", "flapdn"), + (u"atterrissage", "attero"), + (u"écolage", "trnon"), + (u"fin écolage", "trnoff"), + (u"moteur coupé", "engoff"), + ]): + sounds.append((s, filename(f, PROMPT_CUSTOM_BASE + i))) diff --git a/radio/util/tts_it.py b/radio/util/tts_it.py new file mode 100644 index 000000000..b84fdf52e --- /dev/null +++ b/radio/util/tts_it.py @@ -0,0 +1,100 @@ +# -*- coding: utf-8 -*- + +# Italian language sounds configuration + +from tts import filename, NO_ALTERNATE, PROMPT_SYSTEM_BASE, PROMPT_CUSTOM_BASE + + +systemSounds = [] +sounds = [] + +for i in range(101): + systemSounds.append((str(i), filename(PROMPT_SYSTEM_BASE + i))) +systemSounds.append(("mila", filename(PROMPT_SYSTEM_BASE + 101))) +systemSounds.append(("mille", filename(PROMPT_SYSTEM_BASE + 102))) +for i, s in enumerate(["virgola", "un", "e", "meno", "ora", "ore", "minuto", "minuti", "secondo", "secondi"]): + systemSounds.append((s, filename(PROMPT_SYSTEM_BASE + 103 + i))) +for i, s in enumerate(["", "", + "volt", "volt", + "ampere", "ampere", + "milliampers", "milliampers", + "nodo", "nodi", + "metro al secondo", "metri al secondo", + "piede al secondo", "piedi al secondo", + "chilometro ora", "chilometri ora", + "miglio per ora", "miglia per ora", + "metro", "metri", + "piede", "piedi", + "grado celsius", "gradi celsius", + "grado fahrenheit", "gradi fahrenheit", + "percento", "percento", + "milliampere ora", "milliampere ora", + "watt", "watt", + "decibel", "decibel", + "R P M", "R P M", + "g", "g", + "grado", "gradi", + "millilitro", "millilitri", + "oncia", "once"]): + systemSounds.append((s, filename(PROMPT_SYSTEM_BASE + 113 + i))) +for s, f, a in [(u"radio inattiva controllare", "inactiv", 486), + (u"batteria della radio scarica", "lowbatt", 485), + (u"controllo motore non in posizione, verificare", "thralert", 481), + (u"interruttori non in posizione, verificare", "swalert", 482), + (u"eeprom corrotta", "eebad", NO_ALTERNATE), + (u"formattazone eeprom in corso", "eeformat", NO_ALTERNATE), + (u"errore", "error", NO_ALTERNATE), + (u"trim centrato", "midtrim", 495), + (u"potenziometro centrato", "midpot", 496), + (u"massimo trim raggiunto", "endtrim", NO_ALTERNATE), + (u"venti secondi", "timer20", 500), + (u"trenta secondi", "timer30", 501), + (u"assorbimento elevato", "highmah", NO_ALTERNATE), + (u"temperatura elevata", "hightemp", NO_ALTERNATE), + (u"A1 in allarme", "a1_org", NO_ALTERNATE), + (u"A1 critico", "a1_red", NO_ALTERNATE), + (u"A2 in allarme", "a2_org", NO_ALTERNATE), + (u"A2 critico", "a2_red", NO_ALTERNATE), + (u"A3 in allarme", "a3_org", NO_ALTERNATE), + (u"A3 critico", "a3_red", NO_ALTERNATE), + (u"A4 in allarme", "a4_org", NO_ALTERNATE), + (u"A4 critico", "a4_red", NO_ALTERNATE), + (u"Segnale radio basso", "rssi_org", NO_ALTERNATE), + (u"Segnale radio critico", "rssi_red", NO_ALTERNATE), + (u"Problema all'antenna della radio", "swr_red", NO_ALTERNATE), + (u"Telemetria assente", "telemko", NO_ALTERNATE), + (u"Telemetria disponibile", "telemok", NO_ALTERNATE), + ]: + systemSounds.append((s, filename(f, a))) +for i, s in enumerate([u"timer", u"", u"tensione", u"tensione", u"trasmissione", u"ricezione", u"altitudine", u"motore", + u"carburante", u"temperatura", u"temperatura", u"velocità", "distanza", u"altitudine", u"cella lipo", + u"totale lipo", u"tensione", u"corrente", u"consumo", u"potenza", u"accellerazione X", u"accellerazione Y", u"accellerazione Z", + u"direzione", u"variometro", u"minimo", u"massimo"]): + systemSounds.append((s, filename(PROMPT_SYSTEM_BASE + 135 + i))) +for i, (s, f) in enumerate([(u"carrello chiuso", "gearup"), + (u"carrello aperto", "geardn"), + (u"flap rientrati", "flapup"), + (u"flap estesi", "flapdn"), + (u"atterraggiio", "attero"), + (u"modalità maestro attiva", "trnon"), + (u"modalità maestro disattiva", "trnoff"), + (u"motore spento", "engoff"), + (u"troppo alto", "tohigh"), + (u"troppo basso", "tolow"), + (u"batteria scarica", "lowbat"), + (u"crow on", "crowon"), + (u"crow off", "crowof"), + (u"modo velocità", "spdmod"), + (u"modo termica", "thmmod"), + (u"modo volo normale", "nrmmod"), + (u"fase di volo 1", "fltmd1"), + (u"fase di volo 2", "fltmd2"), + (u"fase di volo 3", "fltmd3"), + (u"fase di volo 4", "fltmd4"), + (u"fase di volo 5", "fltmd5"), + (u"fase di volo 6", "fltmd6"), + (u"fase di volo 7", "fltmd7"), + (u"fase di volo 8", "fltmd8"), + (u"fase di volo 9", "fltmd9"), + ]): + sounds.append((s, filename(f, PROMPT_CUSTOM_BASE + i))) diff --git a/radio/util/tts_pt.py b/radio/util/tts_pt.py new file mode 100644 index 000000000..668709a19 --- /dev/null +++ b/radio/util/tts_pt.py @@ -0,0 +1,81 @@ +# -*- coding: utf-8 -*- + +# Portuguese language sounds configuration + +from tts import filename, NO_ALTERNATE, PROMPT_SYSTEM_BASE, PROMPT_CUSTOM_BASE + + +systemSounds = [] +sounds = [] + +for i in range(101): + systemSounds.append((str(i), filename(PROMPT_SYSTEM_BASE + i))) +systemSounds.append(("cento", filename(PROMPT_SYSTEM_BASE + 101))) +systemSounds.append(("duzentos", filename(PROMPT_SYSTEM_BASE + 102))) +systemSounds.append(("trezentos", filename(PROMPT_SYSTEM_BASE + 103))) +systemSounds.append(("quatrocentos", filename(PROMPT_SYSTEM_BASE + 104))) +systemSounds.append(("quinhentos", filename(PROMPT_SYSTEM_BASE + 105))) +systemSounds.append(("seiscentos", filename(PROMPT_SYSTEM_BASE + 106))) +systemSounds.append(("setecentos", filename(PROMPT_SYSTEM_BASE + 107))) +systemSounds.append(("oitocentos", filename(PROMPT_SYSTEM_BASE + 108))) +systemSounds.append(("novecentos", filename(PROMPT_SYSTEM_BASE + 109))) +systemSounds.append(("mil", filename(PROMPT_SYSTEM_BASE + 110))) +for i, s in enumerate(["virgula", "uma", "duas", "e", "menos", "hora", "horas", "minuto", "minutos", "segundo", "segundos"]): + systemSounds.append((s, filename(PROMPT_SYSTEM_BASE + 111 + i))) +for i, s in enumerate([u"Volt", u"ampére", u"metros por segundo", u"", u"quilômetros por hora", u"metros", u"graus", u"cento", u"miliamperes", u"miliamperes por hora", u"watt", u"db", u"pés", u"nós", u"horas", u"minutos", u"segundos", u"RPM", u"g", u"mililitri", u"onças"]): + systemSounds.append((s, filename(PROMPT_SYSTEM_BASE + 122 + i))) +for s, f, a in [(u"atenção, o rádio foi esquecido ligado, por favor desligue-o", "inactiv", 486), + (u"bateria do rádio fraca", "lowbatt", 485), + (u"atenção,acelerador não está no mínimo", "thralert", 481), + (u"atenção, certifique-se que os interruptores estão na posição certa", "swalert", 482), + (u"eeprom corrompida", "eebad", NO_ALTERNATE), + (u"formatação da eeprom em curso", "eeformat", NO_ALTERNATE), + (u"erro", "error", NO_ALTERNATE), + (u"trim centrado", "midtrim", 495), + (u"potenciómetro centrado", "midpot", 496), + (u"trim no máximo", "endtrim", NO_ALTERNATE), + (u"20 segundos", "timer20", 500), + (u"30 segundos", "timer30", 501), + (u"assorbimento elevato", "highmah", NO_ALTERNATE), + (u"temperatura elevata", "hightemp", NO_ALTERNATE), + (u"Alarme A1", "a1_org", NO_ALTERNATE), + (u"A1 critica", "a1_red", NO_ALTERNATE), + (u"Alarme A2", "a2_org", NO_ALTERNATE), + (u"A2 critica", "a2_red", NO_ALTERNATE), + (u"recepção de sinal muito baixa", "rssi_org", NO_ALTERNATE), + (u"recepção de sinal crítica", "rssi_red", NO_ALTERNATE), + (u"Problema com a antena do transmissor", "swr_red", NO_ALTERNATE), + ]: + systemSounds.append((s, filename(f, a))) +for i, s in enumerate([u"cronómetro", u"cronómetro", u"transmissão", u"recepção", u"A1", u"A2", u"altitude", u"motor", + u"combustível", u"temperatura", u"temperatura", u"velocidade", u"distância", u"altitude", u"célula lipo", + u"Total lipo", u"tensão", u"corrente", u"consumo", u"potência", u"aceleração X", u"aceleração Y", u"aceleração Z", + u"Direcção", u"variómetro", u"mínimo", u"máximo"]): + systemSounds.append((s, filename(PROMPT_SYSTEM_BASE + 141 + i))) +for i, (s, f) in enumerate([(u"trem, em cima.", "gearup"), + (u"trem, em baixo.", "geardn"), + (u"flaps recolhidos", "flapup"), + (u"flaps estendidos", "flapdn"), + (u"aterragem", "attero"), + (u"modo de treino ligado", "trnon"), + (u"modo de treino desligado", "trnoff"), + (u"motor desligado", "engoff"), + (u"muito alto", "tohigh"), + (u"muito baixo", "tolow"), + (u"bateria fraca", "lowbat"), + (u"crou, activo", "crowon"), + (u"crou, desligado", "crowof"), + (u"modo de velocidade", "spdmod"), + (u"modo de térmica", "thmmod"), + (u"modo de voo normal", "nrmmod"), + (u"fase de voo 1", "fltmd1"), + (u"fase de voo 2", "fltmd2"), + (u"fase de voo 3", "fltmd3"), + (u"fase de voo 4", "fltmd4"), + (u"fase de voo 5", "fltmd5"), + (u"fase de vôo 6", "fltmd6"), + (u"fase de voo 7", "fltmd7"), + (u"fase de voo 8", "fltmd8"), + (u"fase de voo 9", "fltmd9"), + ]): + sounds.append((s, filename(f, PROMPT_CUSTOM_BASE + i)))