Improve translator config models
This commit is contained in:
@@ -20,33 +20,32 @@ def transcribe():
|
||||
|
||||
|
||||
async def announcement_from_german_text(
|
||||
global_config: auracast_config.AuracastGlobalConfig,
|
||||
translator_config: List[translator_config.TranslatorConfigDe],
|
||||
config: translator_config.TranslatorConfigGroup,
|
||||
caster: multicast_control.Multicaster,
|
||||
text_de
|
||||
):
|
||||
base_lang = "deu"
|
||||
|
||||
for i, trans in enumerate(translator_config):
|
||||
if trans.big.language == base_lang:
|
||||
for i, big in enumerate(config.bigs):
|
||||
if big.language == base_lang:
|
||||
text = text_de
|
||||
else:
|
||||
text = llm_translator.translate_de_to_x(
|
||||
text_de,
|
||||
trans.big.language,
|
||||
model=trans.translator_llm,
|
||||
client = trans.llm_client,
|
||||
host=trans.llm_host_url,
|
||||
token=trans.llm_host_token
|
||||
big.language,
|
||||
model=big.translator_llm,
|
||||
client = big.llm_client,
|
||||
host=big.llm_host_url,
|
||||
token=big.llm_host_token
|
||||
)
|
||||
|
||||
log.info('%s', text)
|
||||
|
||||
lc3_audio = text_to_speech.synthesize(
|
||||
text,
|
||||
global_config.auracast_sampling_rate_hz,
|
||||
trans.tts_system,
|
||||
trans.tts_model,
|
||||
config.auracast_sampling_rate_hz,
|
||||
big.tts_system,
|
||||
big.tts_model,
|
||||
return_lc3=True
|
||||
)
|
||||
caster.big_conf[i].audio_source = lc3_audio
|
||||
@@ -57,7 +56,7 @@ async def announcement_from_german_text(
|
||||
log.info("Starting all broadcasts took %s s", round(time.time() - start, 3))
|
||||
|
||||
|
||||
async def command_line_ui(global_conf, translator_conf, caster: multicast_control.Multicaster):
|
||||
async def command_line_ui(config: translator_config.TranslatorConfigGroup, translator_conf, caster: multicast_control.Multicaster):
|
||||
while True:
|
||||
# make a list of all available testsentence
|
||||
sentence_list = list(asdict(TESTSENTENCE).values())
|
||||
@@ -79,8 +78,7 @@ async def command_line_ui(global_conf, translator_conf, caster: multicast_contro
|
||||
elif command.strip().isdigit():
|
||||
ind = int(command.strip())
|
||||
await announcement_from_german_text(
|
||||
global_conf,
|
||||
translator_conf,
|
||||
config,
|
||||
caster,
|
||||
sentence_list[ind])
|
||||
await asyncio.wait([caster.streamer.task])
|
||||
@@ -96,35 +94,41 @@ async def main():
|
||||
format='%(module)s.py:%(lineno)d %(levelname)s: %(message)s'
|
||||
)
|
||||
|
||||
global_conf = auracast_config.AuracastGlobalConfig()
|
||||
#global_conf.transport='serial:/dev/serial/by-id/usb-SEGGER_J-Link_001057705357-if02,1000000,rtscts' # transport for nrf54l15dk
|
||||
global_conf.transport='serial:/dev/serial/by-id/usb-ZEPHYR_Zephyr_HCI_UART_sample_81BD14B8D71B5662-if00,115200,rtscts' #nrf52dongle hci_uart usb cdc
|
||||
|
||||
|
||||
translator_conf = [
|
||||
translator_config.TranslatorConfigDe(),
|
||||
translator_config.TranslatorConfigEn(),
|
||||
translator_config.TranslatorConfigFr(),
|
||||
#auracast_config.broadcast_es,
|
||||
#auracast_config.broadcast_it,
|
||||
config = translator_config.TranslatorConfigGroup(
|
||||
bigs=[
|
||||
translator_config.TranslatorConfigDe(),
|
||||
translator_config.TranslatorConfigEn(),
|
||||
translator_config.TranslatorConfigFr(),
|
||||
]
|
||||
for conf in translator_conf:
|
||||
conf.big.loop = False
|
||||
)
|
||||
|
||||
#config = auracast_config.AuracastGlobalConfig()
|
||||
#config.transport='serial:/dev/serial/by-id/usb-SEGGER_J-Link_001057705357-if02,1000000,rtscts' # transport for nrf54l15dk
|
||||
config.transport='serial:/dev/serial/by-id/usb-ZEPHYR_Zephyr_HCI_UART_sample_81BD14B8D71B5662-if00,115200,rtscts' #nrf52dongle hci_uart usb cdc
|
||||
|
||||
for conf in config.bigs:
|
||||
conf.loop = False
|
||||
conf.llm_client = 'openwebui' # comment out for local llm
|
||||
conf.llm_host_url = 'https://ollama.pstruebi.xyz'
|
||||
conf.llm_host_token = 'sk-17124cb84df14cc6ab2d9e17d0724d13'
|
||||
|
||||
caster = multicast_control.Multicaster(global_conf, [conf.big for conf in translator_conf])
|
||||
caster = multicast_control.Multicaster(
|
||||
config,
|
||||
[big for big in config.bigs]
|
||||
)
|
||||
await caster.init_broadcast()
|
||||
|
||||
# await announcement_from_german_text(
|
||||
# global_conf,
|
||||
# translator_conf,
|
||||
# config,
|
||||
# caster,
|
||||
# test_content.TESTSENTENCE.DE_HELLO
|
||||
# )
|
||||
# await asyncio.wait([caster.streamer.task])
|
||||
await command_line_ui(global_conf, translator_conf, caster)
|
||||
await command_line_ui(
|
||||
config,
|
||||
[big for big in config.bigs],
|
||||
caster
|
||||
)
|
||||
|
||||
if __name__ == '__main__':
|
||||
asyncio.run(main())
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import os
|
||||
from typing import List
|
||||
from pydantic import BaseModel
|
||||
from auracast import auracast_config
|
||||
|
||||
VENV_DIR = os.path.join(os.path.dirname(__file__), './../../venv')
|
||||
|
||||
class TranslatorBaseconfig(BaseModel):
|
||||
big: auracast_config.AuracastBigConfig = auracast_config.AuracastBigConfigDe()
|
||||
class TranslatorLangConfig(BaseModel):
|
||||
translator_llm: str = 'llama3.2:3b-instruct-q4_0'
|
||||
llm_client: str = 'ollama'
|
||||
llm_host_url: str | None = 'http://localhost:11434'
|
||||
@@ -14,22 +14,22 @@ class TranslatorBaseconfig(BaseModel):
|
||||
tts_model: str ='de_DE-kerstin-low'
|
||||
|
||||
|
||||
class TranslatorConfigDe(TranslatorBaseconfig):
|
||||
big: auracast_config.AuracastBigConfig = auracast_config.AuracastBigConfigDe()
|
||||
class TranslatorConfigDe(TranslatorLangConfig, auracast_config.AuracastBigConfigDe):
|
||||
tts_model: str ='de_DE-thorsten-high'
|
||||
|
||||
class TranslatorConfigEn(TranslatorBaseconfig):
|
||||
big: auracast_config.AuracastBigConfig = auracast_config.AuracastBigConfigEn()
|
||||
class TranslatorConfigEn(TranslatorLangConfig, auracast_config.AuracastBigConfigEn):
|
||||
tts_model: str = 'en_GB-alba-medium'
|
||||
|
||||
class TranslatorConfigFr(TranslatorBaseconfig):
|
||||
big: auracast_config.AuracastBigConfig = auracast_config.AuracastBigConfigFr()
|
||||
class TranslatorConfigFr(TranslatorLangConfig, auracast_config.AuracastBigConfigFr):
|
||||
tts_model: str = 'fr_FR-siwis-medium'
|
||||
|
||||
class TranslatorConfigEs(TranslatorBaseconfig):
|
||||
big: auracast_config.AuracastBigConfig = auracast_config.AuracastBigConfigEs()
|
||||
class TranslatorConfigEs(TranslatorLangConfig, auracast_config.AuracastBigConfigEs):
|
||||
tts_model: str = 'es_ES-sharvard-medium'
|
||||
|
||||
class TranslatorConfigIt(TranslatorBaseconfig):
|
||||
big: auracast_config.AuracastBigConfig = auracast_config.AuracastBigConfigIt()
|
||||
class TranslatorConfigIt(TranslatorLangConfig, auracast_config.AuracastBigConfigIt):
|
||||
tts_model: str = 'it_IT-paola-medium'
|
||||
|
||||
class TranslatorConfigGroup(auracast_config.AuracastGlobalConfig):
|
||||
bigs: List[TranslatorLangConfig] = [
|
||||
TranslatorConfigDe(),
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user