change project structure for packaging that makes sense with poetry
This commit is contained in:
+1
-1
@@ -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
File diff suppressed because it is too large
Load Diff
+33
-26
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
+2
-2
@@ -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()
|
||||
+1
-1
@@ -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"]
|
||||
+2
-2
@@ -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,
|
||||
+4
-4
@@ -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"
|
||||
)
|
||||
+1
-2
@@ -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
|
||||
@@ -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()
|
||||
|
||||
@@ -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
@@ -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,
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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
@@ -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")
|
||||
Reference in New Issue
Block a user