Add configurable TTS and STT residency policies
This commit is contained in:
@@ -11,6 +11,7 @@ from auth import CredentialStore, verify_password
|
||||
from catalog import Catalog
|
||||
from tts_runtime import TTSRuntime
|
||||
from stt import STT,read_upload
|
||||
from audio_policy import AudioPolicy
|
||||
from tts_test import TTSTests
|
||||
from profiles import Profiles
|
||||
from capacity import assess, overview
|
||||
@@ -110,6 +111,7 @@ class Server(ThreadingHTTPServer):
|
||||
if self.endpoint.config['autostart']:
|
||||
try:self.endpoint.start()
|
||||
except ValueError as exc:self.endpoint.error=str(exc)
|
||||
self.audio_policy=AudioPolicy(self.catalog.root.parent/'audio-policy.json',self.profiles,self.tts_tests,self.stt,self.scheduler,self.endpoint)
|
||||
self.sessions = {}
|
||||
self.login_attempts = []
|
||||
self.auth_lock = threading.Lock()
|
||||
@@ -279,6 +281,7 @@ class Handler(BaseHTTPRequestHandler):
|
||||
if self.path == '/api/v1/docker':return self.respond(self.server.docker.status())
|
||||
if self.path == '/api/v1/stt':return self.respond(self.server.stt.status())
|
||||
if self.path == '/api/v1/tts':return self.respond(self.server.tts_tests.status())
|
||||
if self.path == '/api/v1/audio-policy':return self.respond(self.server.audio_policy.status())
|
||||
if urlsplit(self.path).path == '/api/v1/tts/audio':
|
||||
try:return self.respond(self.server.tts_tests.audio(parse_qs(urlsplit(self.path).query).get('id',[''])[0]),mime='audio/wav')
|
||||
except (OSError,ValueError):return self.respond({'error':'Audio nicht verfügbar.'},404)
|
||||
@@ -351,6 +354,10 @@ class Handler(BaseHTTPRequestHandler):
|
||||
return self.login()
|
||||
if not self.authenticated():
|
||||
return self.respond({'error':'Anmeldung oder gültiger API-Token erforderlich.'},401)
|
||||
if self.path == '/api/v1/audio-policy':
|
||||
try:return self.respond(self.server.audio_policy.configure(self.read_json()))
|
||||
except ValueError as exc:return self.respond({'error':str(exc)},400)
|
||||
except OSError:return self.respond({'error':'Audio-Einstellung konnte nicht gespeichert werden.'},503)
|
||||
if self.path == '/api/v1/huggingface':
|
||||
try:
|
||||
data=self.read_json()
|
||||
|
||||
Reference in New Issue
Block a user