Support AWS Polly Lexicon Names parameter

Documentation reference
[AWS Managing
Lexicons](https://docs.aws.amazon.com/polly/latest/dg/managing-lexicons.html)
This commit is contained in:
Alrahma
2025-06-20 09:47:46 +01:00
parent e69406c7e2
commit 89750086c5

View File

@@ -6,7 +6,7 @@
import asyncio import asyncio
import os import os
from typing import AsyncGenerator, Optional from typing import AsyncGenerator, List, Optional
from loguru import logger from loguru import logger
from pydantic import BaseModel from pydantic import BaseModel
@@ -115,6 +115,7 @@ class AWSPollyTTSService(TTSService):
pitch: Optional[str] = None pitch: Optional[str] = None
rate: Optional[str] = None rate: Optional[str] = None
volume: Optional[str] = None volume: Optional[str] = None
lexicon_names: Optional[List[str]] = None
def __init__( def __init__(
self, self,
@@ -147,6 +148,7 @@ class AWSPollyTTSService(TTSService):
"pitch": params.pitch, "pitch": params.pitch,
"rate": params.rate, "rate": params.rate,
"volume": params.volume, "volume": params.volume,
"lexicon_names": params.lexicon_names,
} }
self._resampler = create_default_resampler() self._resampler = create_default_resampler()
@@ -235,6 +237,7 @@ class AWSPollyTTSService(TTSService):
"Engine": self._settings["engine"], "Engine": self._settings["engine"],
# AWS only supports 8000 and 16000 for PCM. We select 16000. # AWS only supports 8000 and 16000 for PCM. We select 16000.
"SampleRate": "16000", "SampleRate": "16000",
"LexiconNames": self._settings["lexicon_names"],
} }
# Filter out None values # Filter out None values