Add a broadcaster function to copy filles
This commit is contained in:
@@ -90,8 +90,6 @@ def broadcaster_config():
|
||||
print("\n".join(ret))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
broadcaster_config()
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
import shutil
|
||||
import os
|
||||
BROADCASTER_DEFAULT_DIR = '/media/pstruebi/2C93-FED6'
|
||||
|
||||
def copy_to_broadcaster(filepath, broadcaster_dir = BROADCASTER_DEFAULT_DIR):
|
||||
filename = os.path.basename(filepath)
|
||||
shutil.copy(filepath, f'{broadcaster_dir}/{filename}')
|
||||
@@ -9,15 +9,3 @@ def broadcaster_play_file(broadcast_ch, file):
|
||||
|
||||
ret = write_to_serial_read_respone(serial_port, f"nac file select_play_once {file} {broadcast_ch} 0 0", timeout=0.1)
|
||||
print("\n".join(ret))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
broadcast_ch = 0
|
||||
file = "left24kHz_48kbps.lc3"
|
||||
broadcaster_play_file(broadcast_ch, file)
|
||||
|
||||
time.sleep(1)
|
||||
broadcast_ch = 1
|
||||
file = "right-channel_24kHz_left_48kbps_10ms.lc3"
|
||||
|
||||
broadcaster_play_file(broadcast_ch, file)
|
||||
|
||||
@@ -13,9 +13,15 @@ from examples import custom_style_2
|
||||
import os
|
||||
from text_to_speech import text_to_speech, resample
|
||||
from translator import llm_translator
|
||||
from backend_controller.broadcaster_config import broadcaster_config
|
||||
from backend_controller.broadcaster_play_once import broadcaster_play_file
|
||||
from backend_controller.broadcaster_copy_files import copy_to_broadcaster
|
||||
|
||||
from encode import encode_lc3
|
||||
import shutil
|
||||
|
||||
ANNOUNCEMENT_DIR = os.path.join(os.path.dirname(__file__), 'announcements')
|
||||
|
||||
os.makedirs(ANNOUNCEMENT_DIR, exist_ok=True)
|
||||
|
||||
def synthesize_resample_encode(text, tts_model, output_file):
|
||||
@@ -25,16 +31,37 @@ def synthesize_resample_encode(text, tts_model, output_file):
|
||||
|
||||
|
||||
def announcement_from_german_text(text_de):
|
||||
synthesize_resample_encode(text_de, 'de_DE-kerstin-low', f'{ANNOUNCEMENT_DIR}/announcement_de.wav')
|
||||
|
||||
files = {
|
||||
"de": f"{ANNOUNCEMENT_DIR}/announcement_de",
|
||||
"en": f"{ANNOUNCEMENT_DIR}/announcement_en",
|
||||
"fr": f"{ANNOUNCEMENT_DIR}/announcement_fr",
|
||||
"es": f"{ANNOUNCEMENT_DIR}/announcement_es",
|
||||
}
|
||||
|
||||
synthesize_resample_encode(text_de, 'de_DE-kerstin-low', f'{files['de']}.wav')
|
||||
|
||||
text_en = llm_translator.translator_de_en(text_de)
|
||||
synthesize_resample_encode(text_en, 'en_US-lessac-medium', f'{ANNOUNCEMENT_DIR}/announcement_en.wav')
|
||||
synthesize_resample_encode(text_en, 'en_US-lessac-medium', f'{files['en']}.wav')
|
||||
|
||||
text_fr = llm_translator.translator_de_fr(text_de)
|
||||
synthesize_resample_encode(text_fr, 'fr_FR-siwis-medium', f'{ANNOUNCEMENT_DIR}/announcement_fr.wav')
|
||||
synthesize_resample_encode(text_fr, 'fr_FR-siwis-medium', f'{files['fr']}.wav')
|
||||
|
||||
text_fr = llm_translator.translator_de_es(text_de)
|
||||
synthesize_resample_encode(text_fr, 'es_ES-sharvard-medium', f'{ANNOUNCEMENT_DIR}/announcement_fr.wav')
|
||||
text_es = llm_translator.translator_de_es(text_de)
|
||||
synthesize_resample_encode(text_es, 'es_ES-sharvard-medium', f'{files['es']}.wav')
|
||||
|
||||
# Transfer the files to broadcaster memory
|
||||
start = time.time()
|
||||
for val in files.values():
|
||||
copy_to_broadcaster(f'{ANNOUNCEMENT_DIR}/{val}.lc3')
|
||||
log.info("Transfering files to broadcaster took %s s", round(time.time() - start, 3))
|
||||
|
||||
# Instruct the broadcaster to stream the files
|
||||
for val in files.values():
|
||||
time.sleep(1)
|
||||
broadcaster_play_file(f'{val}.lc3')
|
||||
log.info("Starting all broadcasts %s s", round(time.time() - start, 3))
|
||||
|
||||
|
||||
# questions = [
|
||||
# {
|
||||
@@ -59,5 +86,7 @@ if __name__ == '__main__':
|
||||
log.basicConfig(level=log.INFO)
|
||||
|
||||
start= time.time()
|
||||
broadcaster_config()
|
||||
|
||||
announcement_from_german_text(test_content.TESTSENTENCE_DE_RAINBOW)
|
||||
print("Generating the announcement took", time.time() - start)
|
||||
print("Generating and starting the announcement took", time.time() - start)
|
||||
8
tests/conftest.py
Normal file
8
tests/conftest.py
Normal file
@@ -0,0 +1,8 @@
|
||||
import logging as log
|
||||
|
||||
# Set the logging level to DEBUG (most verbose) at the root logger
|
||||
log.basicConfig(
|
||||
level=log.INFO,
|
||||
format='%(asctime)s [%(levelname)s] %(message)s',
|
||||
datefmt='%Y-%m-%d %H:%M:%S'
|
||||
)
|
||||
@@ -1,10 +1,23 @@
|
||||
import logging as log
|
||||
import time
|
||||
import os
|
||||
|
||||
from multilang_translator.backend_controller.broadcaster_config import broadcaster_config
|
||||
from multilang_translator.backend_controller.broadcaster_play_once import broadcaster_play_file
|
||||
from multilang_translator.backend_controller.broadcaster_copy_files import copy_to_broadcaster
|
||||
|
||||
|
||||
def test_copy_to_broadcaster():
|
||||
log.info("Current working directory is: " + os.getcwd())
|
||||
start = time.time()
|
||||
copy_to_broadcaster('./tests/announcement_de.lc3')
|
||||
log.info(f"Copy to broadcaster took {time.time() - start} seconds")
|
||||
|
||||
def test_config_broadcaster():
|
||||
broadcaster_config()
|
||||
broadcaster_play_file(0, 'announcement_de.wav')
|
||||
broadcaster_play_file(0, 'announcement_de.lc3')
|
||||
|
||||
def test_play_file():
|
||||
broadcaster_play_file(0, 'announcement_de.wav')
|
||||
broadcaster_play_file(0, 'announcement_de.lc3')
|
||||
|
||||
|
||||
|
||||
20
tests/test_translator.py
Normal file
20
tests/test_translator.py
Normal file
@@ -0,0 +1,20 @@
|
||||
from multilang_translator.translator.llm_translator import translator_de_en
|
||||
from multilang_translator.translator.llm_translator import translator_de_fr
|
||||
import time
|
||||
import logging as log
|
||||
|
||||
def test_translator():
|
||||
|
||||
TESTSENTENCE_DE_BROKER = 'Ein Broker (oder Makler) ist eine Person oder ein Unternehmen, das sich zwischen dem Kauf- und Verkaufsberechtigten einer Wirtschaftsgüter (z.B. Aktien, Optionen, Derivate, Währungen, Rohstoffe usw.) stellt und als Vermittler fungiert. Sein Hauptziel ist es, Transaktionen zu erleichtern und Geld für sich selbst zu verdienen.'
|
||||
|
||||
start=time.time()
|
||||
response = translator_de_en(TESTSENTENCE_DE_BROKER)
|
||||
|
||||
log.info("First query took %s", time.time() - start)
|
||||
log.info(response)
|
||||
assert 'A broker (or agent) is a person or company' in response
|
||||
|
||||
start=time.time()
|
||||
response = translator_de_fr(TESTSENTENCE_DE_BROKER)
|
||||
log.info("Second query took %s", time.time() - start)
|
||||
log.info(response)
|
||||
Reference in New Issue
Block a user