minmal example with a server client architecture
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
from typing import List
|
||||
import time
|
||||
|
||||
import logging as log
|
||||
|
||||
from auracast import multicast_client
|
||||
from auracast import auracast_config
|
||||
|
||||
import voice_client
|
||||
import voice_models
|
||||
|
||||
from multilang_translator import translator_config
|
||||
from multilang_translator.translator import llm_translator
|
||||
import voice_client.tts_client
|
||||
import voice_models.request_models
|
||||
|
||||
|
||||
def announcement_from_german_text(
|
||||
global_config: auracast_config.AuracastGlobalConfig,
|
||||
translator_config: List[translator_config.TranslatorConfigDe],
|
||||
text_de
|
||||
):
|
||||
base_lang = "deu"
|
||||
|
||||
audio_data_dict = {}
|
||||
for i, trans in enumerate(translator_config):
|
||||
if trans.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
|
||||
)
|
||||
|
||||
log.info('%s', text)
|
||||
request_data = voice_models.request_models.SynthesizeRequest(
|
||||
text=text,
|
||||
target_sample_rate=global_config.auracast_sampling_rate_hz,
|
||||
framework=trans.tts_system,
|
||||
model=trans.tts_model,
|
||||
return_lc3=True
|
||||
)
|
||||
lc3_audio = voice_client.tts_client.request_synthesis(
|
||||
request_data
|
||||
)
|
||||
|
||||
# lc3_audio = text_to_speech.synthesize(
|
||||
# text,
|
||||
# global_config.auracast_sampling_rate_hz,
|
||||
# trans.tts_system,
|
||||
# trans.tts_model,
|
||||
# return_lc3=True
|
||||
# )
|
||||
|
||||
audio_data_dict[trans.big.language] = lc3_audio.decode('latin-1') # TODO: should be .hex in the future
|
||||
|
||||
multicast_client.send_audio(
|
||||
audio_data_dict
|
||||
)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
log.basicConfig(
|
||||
level=log.INFO,
|
||||
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,
|
||||
]
|
||||
|
||||
for conf in translator_conf:
|
||||
conf.big.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'
|
||||
|
||||
|
||||
multicast_client.initialize()
|
||||
|
||||
announcement_from_german_text(global_conf, translator_conf, 'Hello')
|
||||
|
||||
|
||||
@@ -1,9 +1,3 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
list prompt example
|
||||
"""
|
||||
from __future__ import print_function, unicode_literals
|
||||
|
||||
from typing import List
|
||||
from dataclasses import asdict
|
||||
import asyncio
|
||||
|
||||
Reference in New Issue
Block a user