Add new region parameter to Gladia
This commit is contained in:
committed by
Mark Backman
parent
ac6b59cae2
commit
a80002d3bd
@@ -44,6 +44,7 @@ FIREWORKS_API_KEY=...
|
||||
|
||||
# Gladia
|
||||
GLADIA_API_KEY=...
|
||||
GLADIA_REGION=...
|
||||
|
||||
# Google
|
||||
GOOGLE_API_KEY=...
|
||||
@@ -135,4 +136,4 @@ SAMBANOVA_API_KEY=...
|
||||
SENTRY_DSN=...
|
||||
|
||||
# Heygen
|
||||
HEYGEN_API_KEY=...
|
||||
HEYGEN_API_KEY=...
|
||||
|
||||
@@ -55,6 +55,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
stt = GladiaSTTService(
|
||||
api_key=os.getenv("GLADIA_API_KEY", ""),
|
||||
region=os.getenv("GLADIA_REGION"),
|
||||
params=GladiaInputParams(
|
||||
language_config=LanguageConfig(
|
||||
languages=[Language.EN],
|
||||
|
||||
@@ -47,6 +47,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
stt = GladiaSTTService(
|
||||
api_key=os.getenv("GLADIA_API_KEY"),
|
||||
region=os.getenv("GLADIA_REGION"),
|
||||
# live_options=LiveOptions(language=Language.FR),
|
||||
)
|
||||
|
||||
|
||||
@@ -56,6 +56,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
|
||||
|
||||
stt = GladiaSTTService(
|
||||
api_key=os.getenv("GLADIA_API_KEY"),
|
||||
region=os.getenv("GLADIA_REGION"),
|
||||
params=GladiaInputParams(
|
||||
language_config=LanguageConfig(
|
||||
languages=[Language.EN], # Input in English
|
||||
|
||||
@@ -14,7 +14,8 @@ import asyncio
|
||||
import base64
|
||||
import json
|
||||
import warnings
|
||||
from typing import Any, AsyncGenerator, Dict, Optional
|
||||
from typing import Any, AsyncGenerator, Dict, Literal, Optional
|
||||
from urllib.parse import urlencode
|
||||
|
||||
import aiohttp
|
||||
from loguru import logger
|
||||
@@ -203,6 +204,7 @@ class GladiaSTTService(STTService):
|
||||
self,
|
||||
*,
|
||||
api_key: str,
|
||||
region: Optional[Literal["us-west", "eu-west"]] = "eu-west",
|
||||
url: str = "https://api.gladia.io/v2/live",
|
||||
confidence: float = 0.5,
|
||||
sample_rate: Optional[int] = None,
|
||||
@@ -217,6 +219,7 @@ class GladiaSTTService(STTService):
|
||||
|
||||
Args:
|
||||
api_key: Gladia API key for authentication.
|
||||
region: Region used to process audio. eu-west or us-west. Defaults to eu-west.
|
||||
url: Gladia API URL. Defaults to "https://api.gladia.io/v2/live".
|
||||
confidence: Minimum confidence threshold for transcriptions (0.0-1.0).
|
||||
sample_rate: Audio sample rate in Hz. If None, uses service default.
|
||||
@@ -241,6 +244,7 @@ class GladiaSTTService(STTService):
|
||||
)
|
||||
|
||||
self._api_key = api_key
|
||||
self._region = region
|
||||
self._url = url
|
||||
self.set_model_name(model)
|
||||
self._confidence = confidence
|
||||
@@ -337,6 +341,13 @@ class GladiaSTTService(STTService):
|
||||
|
||||
return settings
|
||||
|
||||
def _get_endpoint_url(self) -> str:
|
||||
query_params = dict()
|
||||
query_params["region"] = self._region or "eu-west"
|
||||
query = urlencode(query_params)
|
||||
|
||||
return f"{self._url}?{query}"
|
||||
|
||||
async def start(self, frame: StartFrame):
|
||||
"""Start the Gladia STT websocket connection.
|
||||
|
||||
@@ -485,11 +496,13 @@ class GladiaSTTService(STTService):
|
||||
async def _setup_gladia(self, settings: Dict[str, Any]):
|
||||
async with aiohttp.ClientSession() as session:
|
||||
async with session.post(
|
||||
self._url,
|
||||
self._get_endpoint_url(),
|
||||
headers={"X-Gladia-Key": self._api_key, "Content-Type": "application/json"},
|
||||
json=settings,
|
||||
) as response:
|
||||
if response.ok:
|
||||
response_text = await response.json()
|
||||
logger.error(f"Gladia response: {response_text}")
|
||||
return await response.json()
|
||||
else:
|
||||
error_text = await response.text()
|
||||
|
||||
Reference in New Issue
Block a user