change project structure for packaging that makes sense with poetry

This commit is contained in:
2025-03-20 11:56:33 +01:00
parent 17cf41166b
commit b9ca04af82
27 changed files with 2680 additions and 65 deletions
+1 -1
View File
@@ -27,4 +27,4 @@ RUN --mount=type=cache,target=/root/.cache pip install --no-cache-dir onnxruntim
EXPOSE 7999
# Run the translator server
CMD ["python", "-m", "multilang_translator.translator_server.translator_server"]
CMD ["python", "-m", "auracast_translator.translator_server.translator_server"]
Generated
+2614
View File
File diff suppressed because it is too large Load Diff
+33 -26
View File
@@ -1,32 +1,39 @@
[project]
name = "multilang_translator"
requires-python = ">= 3.11"
version = '0.1'
dependencies = [
"aioconsole==0.8.1",
"fastapi==0.115.11",
"uvicorn==0.34.0",
"ollama==0.4.7",
"requests==2.32.3",
"aiohttp==3.9.3",
"piper-tts==1.2.0",
"librosa==0.10.1",
"lc3 @ git+ssh://git@ssh.pstruebi.xyz:222/auracaster/liblc3.git@7558637303106c7ea971e7bb8cedf379d3e08bcc",
[tool.poetry]
name = "auracast_translator"
version = "0.1.0"
authors = ["Patrick S <pstruebi>"]
description = "Announcement System"
readme = "readme.md"
packages = [
{ include = "translator_models", from = "src" },
{ include = "translator_client", from = "src" },
]
[project.optional-dependencies]
test = [
"pytest >= 8.2",
]
[tool.poetry.dependencies]
python = ">=3.10,<4.0"
setuptools= ">=77"
[tool.poetry.group.auracast_onboard.dependencies]
auracast = "auracast@git+https://git@gitea.pstruebi.xyz/auracaster/bumble-auracast"
[tool.poetry.group.general.dependencies]
requests="2.32.3"
aiohttp="3.9.3"
fastapi="0.115.11"
uvicorn="0.34.0"
ollama="0.4.7"
piper-tts="1.2.0"
librosa="0.10.1"
aioconsole="0.8.1"
lc3 = { git = "ssh://git@ssh.pstruebi.xyz:222/auracaster/liblc3.git", rev = "7558637303106c7ea971e7bb8cedf379d3e08bcc" }
auracast = { git = "ssh://git@ssh.pstruebi.xyz:222/auracaster/bumble-auracast.git" }
[tool.poetry.group.tts.dependencies]
piper-phonemize = "==1.1.0"
piper-tts = "==1.2.0"
[tool.poetry.dev-dependencies]
pytest = ">8.2"
#[tool.poetry.group.auracast_onboard.dependencies]
#[tool.poetry.group.tts.dependencies]
#piper-phonemize = "==1.1.0"
#piper-tts = "==1.2.0"
[tool.pytest.ini_options]
@@ -35,5 +42,5 @@ addopts = [
]
[build-system]
requires = ["setuptools>=61", "wheel", "setuptools_scm>=8"]
build-backend = "setuptools.build_meta"
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
+3 -8
View File
@@ -1,11 +1,6 @@
# Prerequisites
sudo apt install liblc3-tools
use python3.11
pip install piper-tts soundfile librosa pyserial pytest
# Install the project
poetry env use python3.11
poetry install
# Piper update voices
piper --update-voices -m en_US-lessac-medium
# TODO:
- investigate using a pipeline instead of writing to intermediate files to gain performance
@@ -10,8 +10,8 @@ from auracast import auracast_config
import voice_client
import voice_models
from multilang_translator.translator_models import translator_models
from multilang_translator.translator import llm_translator
from auracast_translator.translator_models import translator_models
from auracast_translator.translator import llm_translator
import voice_client.tts_client
import voice_models.request_models
@@ -9,9 +9,9 @@ from auracast import multicast_control
from auracast import auracast_config
from voice_provider import text_to_speech
from multilang_translator import translator_config
from multilang_translator.translator import llm_translator
from multilang_translator.translator.test_content import TESTSENTENCE
from auracast_translator import translator_config
from auracast_translator.translator import llm_translator
from auracast_translator.translator.test_content import TESTSENTENCE
# TODO: look for a end to end translation solution
@@ -6,7 +6,7 @@ import time
import ollama
import aiohttp
from multilang_translator.translator import syspromts
from auracast_translator.translator import syspromts
# ollama.create( # TODO: create models on startup
# model='example',
@@ -125,7 +125,7 @@ async def translate_de_to_x_async(
if __name__ == "__main__":
import time
from multilang_translator.translator import test_content
from auracast_translator.translator import test_content
start=time.time()
@@ -3,7 +3,7 @@ Database file for endpoint definitions.
This file contains configurations for auracast endpoints including their IP addresses and capabilities.
"""
from typing import List, Optional
from multilang_translator.translator_models.translator_models import EndpointGroup, Endpoint
from translator_models.translator_models import EndpointGroup, Endpoint
SUPPORTED_LANGUAGES = ["deu", "eng", "fra", "spa", "ita"]
@@ -7,7 +7,7 @@ import logging as log
import sys
import os
# Add the parent directory to the Python path to find the multilang_translator package
# Add the parent directory to the Python path to find the auracast_translator package
current_dir = os.path.dirname(os.path.abspath(__file__))
parent_dir = os.path.dirname(os.path.dirname(os.path.dirname(current_dir)))
if parent_dir not in sys.path:
@@ -20,7 +20,7 @@ if __name__ == "__main__":
)
log.info("Starting Translator API server")
uvicorn.run(
"multilang_translator.translator_server.translator_server:app",
"auracast_translator.translator_server.translator_server:app",
host="0.0.0.0",
port=7999,
reload=True,
@@ -11,9 +11,9 @@ from fastapi import FastAPI, HTTPException
from fastapi.middleware.cors import CORSMiddleware
# Import models
from multilang_translator.translator_models.translator_models import AnnouncementStates, Endpoint, EndpointGroup
from multilang_translator.translator import llm_translator
from multilang_translator.translator_server import endpoints_db
from translator_models.translator_models import AnnouncementStates, Endpoint, EndpointGroup
from auracast_translator.translator import llm_translator
from auracast_translator.translator_server import endpoints_db
from voice_provider import text_to_speech
# Import the endpoints database and multicast client
@@ -342,5 +342,5 @@ if __name__ == "__main__":
port=7999,
#reload=True,
#log_config=None,
#log_level="info"
log_level="debug"
)
@@ -3,10 +3,9 @@ API client functions for interacting with the Translator API.
"""
import requests
from typing import List, Optional, Dict, Any, Tuple
from enum import Enum
from multilang_translator.translator_models.translator_models import AnnouncementStates, Endpoint, EndpointGroup
from translator_models.translator_models import AnnouncementStates, Endpoint, EndpointGroup
# This can be overridden through environment variables
+1 -1
View File
@@ -15,7 +15,7 @@ TTS_DIR = os.path.join(os.path.dirname(__file__))
PIPER_WORKDIR = f'{TTS_DIR}/piper'
if not PIPER_EXE:
PIPER_EXE = f'{TTS_DIR}/../../venv/bin/piper'
PIPER_EXE = f'{TTS_DIR}/../../.venv/bin/piper'
def synth_piper(text, model="en_US-lessac-medium"):
pwd = os.getcwd()
+1 -1
View File
@@ -45,4 +45,4 @@ if __name__ == "__main__":
import os
os.chdir(os.path.dirname(__file__))
file_dir = '../text_to_speech/'
resample_file(f'{file_dir}/welcome.wav', f'{file_dir}/welcome_resampled.wav')
resample_file(f'{file_dir}/welcome.wav', f'{file_dir}/welcome_resampled.wav', 16000)
+3 -3
View File
@@ -4,9 +4,9 @@ import time
import os
import subprocess
from multilang_translator.backend_controller.broadcaster_config import broadcaster_config, BROADCAST_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
from auracast_translator.backend_controller.broadcaster_config import broadcaster_config, BROADCAST_CONFIG
from auracast_translator.backend_controller.broadcaster_play_once import broadcaster_play_file
from auracast_translator.backend_controller.broadcaster_copy_files import copy_to_broadcaster
log.basicConfig(
level=log.INFO,
+3 -3
View File
@@ -4,9 +4,9 @@ import time
import os
import subprocess
from multilang_translator.translator_config import LANG_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
from auracast_translator.translator_config import LANG_CONFIG
from auracast_translator.backend_controller.broadcaster_play_once import broadcaster_play_file
from auracast_translator.backend_controller.broadcaster_copy_files import copy_to_broadcaster
def test_config_broadcaster(ft_configure_broadcaster):
+2 -2
View File
@@ -1,5 +1,5 @@
from multilang_translator.main_local import announcement_from_german_text
from multilang_translator.translator import test_content
from auracast_translator.main_local import announcement_from_german_text
from auracast_translator.translator import test_content
def test_announcement_from_german_text(
+3 -3
View File
@@ -1,6 +1,6 @@
from multilang_translator.translator.llm_translator import translator_de_en, translator_de_fr, translator_de_it
from multilang_translator.translator.test_content import TESTSENTENCE_DE_BROKER, TESTSENTENCE_DE_RAINBOW
from multilang_translator.main_local import translate_from_german
from auracast_translator.translator.llm_translator import translator_de_en, translator_de_fr, translator_de_it
from auracast_translator.translator.test_content import TESTSENTENCE_DE_BROKER, TESTSENTENCE_DE_RAINBOW
from auracast_translator.main_local import translate_from_german
import time
+1 -1
View File
@@ -1,4 +1,4 @@
from multilang_translator.text_to_speech.text_to_speech import synthesize
from auracast_translator.text_to_speech.text_to_speech import synthesize
def test_synthesize():
synthesize("Hello, how are you?", "en_US-lessac-medium", "hello.wav")