Added new languages support for AsyncAI

This commit is contained in:
Ashot
2025-12-04 16:15:28 +04:00
parent b1e5d68d97
commit e65974c870
2 changed files with 19 additions and 6 deletions

View File

@@ -8,6 +8,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
### Added ### Added
- Added new languages for AsyncAI in `AsyncAITTSService` and `AsyncAIHttpTTSService`.
New `languages`: `pt`, `nl`, `ar`, `ru`, `ro`, `ja`, `he`, `hy`, `tr`, `hi`, `zh`.
- Added `wait_for_all` argument to the base `LLMService`. When enabled, this - Added `wait_for_all` argument to the base `LLMService`. When enabled, this
ensures all function calls complete before returning results to the LLM (i.e., ensures all function calls complete before returning results to the LLM (i.e.,

View File

@@ -56,6 +56,17 @@ def language_to_async_language(language: Language) -> Optional[str]:
Language.ES: "es", Language.ES: "es",
Language.DE: "de", Language.DE: "de",
Language.IT: "it", Language.IT: "it",
Language.PT: "pt",
Language.NL: "nl",
Language.AR: "ar",
Language.RU: "ru",
Language.RO: "ro",
Language.JA: "ja",
Language.HE: "he",
Language.HY: "hy",
Language.TR: "tr",
Language.HI: "hi",
Language.ZH: "zh",
} }
return resolve_language(language, LANGUAGE_MAP, use_base_code=True) return resolve_language(language, LANGUAGE_MAP, use_base_code=True)
@@ -74,7 +85,7 @@ class AsyncAITTSService(InterruptibleTTSService):
language: Language to use for synthesis. language: Language to use for synthesis.
""" """
language: Optional[Language] = Language.EN language: Optional[Language] = None
def __init__( def __init__(
self, self,
@@ -83,7 +94,7 @@ class AsyncAITTSService(InterruptibleTTSService):
voice_id: str, voice_id: str,
version: str = "v1", version: str = "v1",
url: str = "wss://api.async.ai/text_to_speech/websocket/ws", url: str = "wss://api.async.ai/text_to_speech/websocket/ws",
model: str = "asyncflow_v2.0", model: str = "asyncflow_multilingual_v1.0",
sample_rate: Optional[int] = None, sample_rate: Optional[int] = None,
encoding: str = "pcm_s16le", encoding: str = "pcm_s16le",
container: str = "raw", container: str = "raw",
@@ -99,7 +110,7 @@ class AsyncAITTSService(InterruptibleTTSService):
https://docs.async.ai/list-voices-16699698e0 https://docs.async.ai/list-voices-16699698e0
version: Async API version. version: Async API version.
url: WebSocket URL for Async TTS API. url: WebSocket URL for Async TTS API.
model: TTS model to use (e.g., "asyncflow_v2.0"). model: TTS model to use (e.g., "asyncflow_multilingual_v1.0").
sample_rate: Audio sample rate. sample_rate: Audio sample rate.
encoding: Audio encoding format. encoding: Audio encoding format.
container: Audio container format. container: Audio container format.
@@ -357,7 +368,7 @@ class AsyncAIHttpTTSService(TTSService):
language: Language to use for synthesis. language: Language to use for synthesis.
""" """
language: Optional[Language] = Language.EN language: Optional[Language] = None
def __init__( def __init__(
self, self,
@@ -365,7 +376,7 @@ class AsyncAIHttpTTSService(TTSService):
api_key: str, api_key: str,
voice_id: str, voice_id: str,
aiohttp_session: aiohttp.ClientSession, aiohttp_session: aiohttp.ClientSession,
model: str = "asyncflow_v2.0", model: str = "asyncflow_multilingual_v1.0",
url: str = "https://api.async.ai", url: str = "https://api.async.ai",
version: str = "v1", version: str = "v1",
sample_rate: Optional[int] = None, sample_rate: Optional[int] = None,
@@ -380,7 +391,7 @@ class AsyncAIHttpTTSService(TTSService):
api_key: Async API key. api_key: Async API key.
voice_id: ID of the voice to use for synthesis. voice_id: ID of the voice to use for synthesis.
aiohttp_session: An aiohttp session for making HTTP requests. aiohttp_session: An aiohttp session for making HTTP requests.
model: TTS model to use (e.g., "asyncflow_v2.0"). model: TTS model to use (e.g., "asyncflow_multilingual_v1.0").
url: Base URL for Async API. url: Base URL for Async API.
version: API version string for Async API. version: API version string for Async API.
sample_rate: Audio sample rate. sample_rate: Audio sample rate.