Skip to content

Commit 074d3ff

Browse files
authored
Merge pull request #2821 from shreyas-sarvam/sarvam/stt
Sarvam STT/STTT WS implementation
2 parents 334167e + d680ec2 commit 074d3ff

File tree

6 files changed

+500
-5
lines changed

6 files changed

+500
-5
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
### Added
1111

12+
- Added supprt for Sarvam Speech-to-Text service (`SarvamSTTService`) with streaming WebSocket
13+
support for `saarika` (STT) and `saaras` (STT-translate) models.
14+
1215
- Added a new `DeepgramHttpTTSService`, which delivers a meaningful reduction
1316
in latency when compared to the `DeepgramTTSService`.
1417

examples/foundational/07z-interruptible-sarvam-http.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
from pipecat.processors.aggregators.llm_response_universal import LLMContextAggregatorPair
2323
from pipecat.runner.types import RunnerArguments
2424
from pipecat.runner.utils import create_transport
25-
from pipecat.services.deepgram.stt import DeepgramSTTService
2625
from pipecat.services.openai.llm import OpenAILLMService
26+
from pipecat.services.sarvam.stt import SarvamSTTService
2727
from pipecat.services.sarvam.tts import SarvamHttpTTSService
2828
from pipecat.transcriptions.language import Language
2929
from pipecat.transports.base_transport import BaseTransport, TransportParams
@@ -63,7 +63,10 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
6363

6464
# Create an HTTP session
6565
async with aiohttp.ClientSession() as session:
66-
stt = DeepgramSTTService(api_key=os.getenv("DEEPGRAM_API_KEY"))
66+
stt = SarvamSTTService(
67+
api_key=os.getenv("SARVAM_API_KEY"),
68+
model="saarika:v2.5",
69+
)
6770

6871
tts = SarvamHttpTTSService(
6972
api_key=os.getenv("SARVAM_API_KEY"),

examples/foundational/07z-interruptible-sarvam.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@
2424
from pipecat.processors.aggregators.llm_response_universal import LLMContextAggregatorPair
2525
from pipecat.runner.types import RunnerArguments
2626
from pipecat.runner.utils import create_transport
27-
from pipecat.services.deepgram.stt import DeepgramSTTService
2827
from pipecat.services.openai.llm import OpenAILLMService
28+
from pipecat.services.sarvam.stt import SarvamSTTService
2929
from pipecat.services.sarvam.tts import SarvamTTSService
3030
from pipecat.transports.base_transport import BaseTransport, TransportParams
3131
from pipecat.transports.daily.transport import DailyParams
@@ -62,7 +62,10 @@
6262
async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
6363
logger.info(f"Starting bot")
6464

65-
stt = DeepgramSTTService(api_key=os.getenv("DEEPGRAM_API_KEY"))
65+
stt = SarvamSTTService(
66+
api_key=os.getenv("SARVAM_API_KEY"),
67+
model="saarika:v2.5",
68+
)
6669

6770
tts = SarvamTTSService(
6871
api_key=os.getenv("SARVAM_API_KEY"),

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ rime = [ "pipecat-ai[websockets-base]" ]
9393
riva = [ "nvidia-riva-client~=2.21.1" ]
9494
runner = [ "python-dotenv>=1.0.0,<2.0.0", "uvicorn>=0.32.0,<1.0.0", "fastapi>=0.115.6,<0.117.0", "pipecat-ai-small-webrtc-prebuilt>=1.0.0"]
9595
sambanova = []
96-
sarvam = [ "pipecat-ai[websockets-base]" ]
96+
sarvam = [ "sarvamai==0.1.21", "pipecat-ai[websockets-base]" ]
9797
sentry = [ "sentry-sdk>=2.28.0,<3" ]
9898
local-smart-turn = [ "coremltools>=8.0", "transformers", "torch>=2.5.0,<3", "torchaudio>=2.5.0,<3" ]
9999
local-smart-turn-v3 = [ "transformers", "onnxruntime>=1.20.1,<2" ]

0 commit comments

Comments
 (0)