fix
This commit is contained in:
+1
-1
@@ -21,7 +21,7 @@ from realtime_voice_service.transports.base import BaseMediaTransport
|
||||
|
||||
|
||||
LOGGER = logging.getLogger("uvicorn.error")
|
||||
SEMANTIC_ENDPOINTING_HOLD_MS = 2000
|
||||
SEMANTIC_ENDPOINTING_HOLD_MS = 1000
|
||||
SEMANTIC_CONTINUATION_TOKENS = {
|
||||
"а",
|
||||
"в",
|
||||
|
||||
@@ -70,8 +70,8 @@ def _audiosocket_port() -> int:
|
||||
|
||||
|
||||
def _sample_rate_hz() -> int:
|
||||
configured = max(_int_env("REALTIME_VOICE_SAMPLE_RATE_HZ", 8000), 1)
|
||||
return configured if configured in {8000, 16000, 24000} else 8000
|
||||
configured = max(_int_env("REALTIME_VOICE_SAMPLE_RATE_HZ", 16000), 1)
|
||||
return configured if configured in {8000, 16000, 24000} else 16000
|
||||
|
||||
|
||||
def _http_host() -> str:
|
||||
|
||||
+4
-4
@@ -69,7 +69,7 @@ class OpenAILLM(BaseLLM):
|
||||
base_url: str | None = None,
|
||||
system_prompt: str | None = None,
|
||||
timeout_seconds: float | None = None,
|
||||
temperature: float = 0.3,
|
||||
temperature: float = 0.7,
|
||||
max_retries: int = 2,
|
||||
max_context_messages: int | None = None,
|
||||
reasoning_effort: str | None = None,
|
||||
@@ -86,7 +86,7 @@ class OpenAILLM(BaseLLM):
|
||||
if system_prompt is not None
|
||||
else os.getenv(
|
||||
"OPENAI_LLM_SYSTEM_PROMPT",
|
||||
"You are a concise voice assistant for a telecom call center. Answer clearly and briefly.",
|
||||
"Ты — дружелюбный, живой и эмпатичный голосовой ИИ-ассистент. Отвечай кратко, как в реальном диалоге. Используй разговорный стиль. Чтобы синтезатор речи (TTS) читал аббревиатуры и английские термины без акцента, пиши их русскими буквами так, как они произносятся (например, 'ай-ти' вместо 'IT', 'би-ту-би' вместо 'B2B', 'си-эр-эм' вместо 'CRM').",
|
||||
)
|
||||
).strip()
|
||||
self._timeout_seconds = max(float(timeout_seconds if timeout_seconds is not None else _timeout_seconds()), 1.0)
|
||||
@@ -654,7 +654,7 @@ class OllamaLLM(BaseLLM):
|
||||
"OLLAMA_LLM_SYSTEM_PROMPT",
|
||||
os.getenv(
|
||||
"OPENAI_LLM_SYSTEM_PROMPT",
|
||||
"You are a concise voice assistant for a telecom call center. Answer clearly and briefly.",
|
||||
"Ты — дружелюбный, живой и эмпатичный голосовой ИИ-ассистент. Отвечай кратко, как в реальном диалоге. Используй разговорный стиль. Чтобы синтезатор речи (TTS) читал аббревиатуры и английские термины без акцента, пиши их русскими буквами так, как они произносятся (например, 'ай-ти' вместо 'IT', 'би-ту-би' вместо 'B2B', 'си-эр-эм' вместо 'CRM').",
|
||||
),
|
||||
)
|
||||
).strip()
|
||||
@@ -663,7 +663,7 @@ class OllamaLLM(BaseLLM):
|
||||
1.0,
|
||||
)
|
||||
self._temperature = max(
|
||||
min(float(temperature if temperature is not None else self._read_float_env("OLLAMA_LLM_TEMPERATURE", 0.3)), 2.0),
|
||||
min(float(temperature if temperature is not None else self._read_float_env("OLLAMA_LLM_TEMPERATURE", 0.7)), 2.0),
|
||||
0.0,
|
||||
)
|
||||
self._max_context_messages = max(
|
||||
|
||||
+7
-7
@@ -91,12 +91,12 @@ class ElevenLabsTTS(BaseTTS):
|
||||
self._ws_base = _ws_base(self._api_base)
|
||||
self._voice_id = str(voice_id or os.getenv("ELEVENLABS_TTS_VOICE_ID", "")).strip()
|
||||
self._requested_model_id = (
|
||||
str(model_id or os.getenv("ELEVENLABS_TTS_MODEL_ID", "eleven_turbo_v2_5")).strip()
|
||||
or "eleven_turbo_v2_5"
|
||||
str(model_id or os.getenv("ELEVENLABS_TTS_MODEL_ID", "eleven_multilingual_v2")).strip()
|
||||
or "eleven_multilingual_v2"
|
||||
)
|
||||
self._websocket_fallback_model_id = (
|
||||
str(os.getenv("ELEVENLABS_TTS_WS_FALLBACK_MODEL_ID", "eleven_turbo_v2_5")).strip()
|
||||
or "eleven_turbo_v2_5"
|
||||
str(os.getenv("ELEVENLABS_TTS_WS_FALLBACK_MODEL_ID", "eleven_multilingual_v2")).strip()
|
||||
or "eleven_multilingual_v2"
|
||||
)
|
||||
self._model_id = self._resolve_websocket_model_id(
|
||||
requested_model_id=self._requested_model_id,
|
||||
@@ -129,7 +129,7 @@ class ElevenLabsTTS(BaseTTS):
|
||||
or _parse_chunk_schedule(os.getenv("ELEVENLABS_TTS_CHUNK_LENGTH_SCHEDULE"))
|
||||
)
|
||||
self._voice_settings = {
|
||||
"stability": self._read_float_env("ELEVENLABS_TTS_STABILITY", 0.35),
|
||||
"stability": self._read_float_env("ELEVENLABS_TTS_STABILITY", 0.5),
|
||||
"similarity_boost": self._read_float_env("ELEVENLABS_TTS_SIMILARITY_BOOST", 0.75),
|
||||
"speed": self._read_float_env("ELEVENLABS_TTS_SPEED", 1.0),
|
||||
"use_speaker_boost": self._read_bool_env("ELEVENLABS_TTS_USE_SPEAKER_BOOST", False),
|
||||
@@ -352,11 +352,11 @@ class ElevenLabsTTS(BaseTTS):
|
||||
|
||||
@staticmethod
|
||||
def _resolve_websocket_model_id(*, requested_model_id: str, fallback_model_id: str) -> str:
|
||||
normalized_requested = requested_model_id.strip() or "eleven_turbo_v2_5"
|
||||
normalized_requested = requested_model_id.strip() or "eleven_multilingual_v2"
|
||||
if normalized_requested not in {"eleven_v3", "eleven_ttv_v3"}:
|
||||
return normalized_requested
|
||||
|
||||
normalized_fallback = fallback_model_id.strip() or "eleven_turbo_v2_5"
|
||||
normalized_fallback = fallback_model_id.strip() or "eleven_multilingual_v2"
|
||||
LOGGER.warning(
|
||||
"ElevenLabs WebSocket TTS does not support model_id=%s; falling back to model_id=%s",
|
||||
normalized_requested,
|
||||
|
||||
Reference in New Issue
Block a user