speech-to-text
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseSpeech-to-Text — Saaras
语音转文本 — Saaras
[!IMPORTANT] Auth:header — NOTapi-subscription-key. Base URL:Authorization: Bearerhttps://api.sarvam.ai/v1
[!IMPORTANT] 认证方式:使用请求头——不是api-subscription-key格式。基础URL:Authorization: Bearerhttps://api.sarvam.ai/v1
Model
模型
saaras:v3transcribetranslateverbatimtranslitcodemixsaaras:v3transcribetranslateverbatimtranslitcodemixQuick Start (Python)
快速开始(Python)
python
from sarvamai import SarvamAI
client = SarvamAI()
response = client.speech_to_text.transcribe(
file=open("audio.wav", "rb"),
model="saaras:v3",
mode="transcribe"
)
print(response.transcript)python
from sarvamai import SarvamAI
client = SarvamAI()
response = client.speech_to_text.transcribe(
file=open("audio.wav", "rb"),
model="saaras:v3",
mode="transcribe"
)
print(response.transcript)Quick Start (JavaScript/TypeScript)
快速开始(JavaScript/TypeScript)
typescript
import { SarvamAIClient } from "sarvamai";
import * as fs from "fs";
const client = new SarvamAIClient({ apiSubscriptionKey: "YOUR_SARVAM_API_KEY" });
const response = await client.speechToText.transcribe({
file: fs.createReadStream("audio.wav"),
model: "saaras:v3",
mode: "transcribe"
});
console.log(response.transcript);typescript
import { SarvamAIClient } from "sarvamai";
import * as fs from "fs";
const client = new SarvamAIClient({ apiSubscriptionKey: "YOUR_SARVAM_API_KEY" });
const response = await client.speechToText.transcribe({
file: fs.createReadStream("audio.wav"),
model: "saaras:v3",
mode: "transcribe"
});
console.log(response.transcript);Batch API (Long Audio + Diarization)
批量API(长音频 + 说话人分离)
python
job = client.speech_to_text_job.create_job(
model="saaras:v3",
mode="transcribe",
language_code="hi-IN",
with_diarization=True,
num_speakers=2
)
job.upload_files(file_paths=["meeting.mp3"])
job.start()
job.wait_until_complete()
job.download_outputs(output_dir="./output")Supports audio up to 1 hour, up to 8 speakers, all 5 output modes.
python
job = client.speech_to_text_job.create_job(
model="saaras:v3",
mode="transcribe",
language_code="hi-IN",
with_diarization=True,
num_speakers=2
)
job.upload_files(file_paths=["meeting.mp3"])
job.start()
job.wait_until_complete()
job.download_outputs(output_dir="./output")支持最长1小时的音频,最多8位说话人,兼容全部5种输出模式。
WebSocket Streaming
WebSocket流式传输
python
import asyncio, base64
from sarvamai import AsyncSarvamAI
async def stream_audio():
client = AsyncSarvamAI()
async with client.speech_to_text_streaming.connect(
model="saaras:v3",
high_vad_sensitivity=True,
flush_signal=True
) as ws:
with open("audio.wav", "rb") as f:
audio_base64 = base64.b64encode(f.read()).decode("utf-8")
await ws.transcribe(audio=audio_base64, encoding="audio/wav", sample_rate=16000)
await ws.flush()
response = await ws.recv()
print(response)
asyncio.run(stream_audio())Supports sessions up to 8 hours. Use for telephony audio.
sample_rate=8000python
import asyncio, base64
from sarvamai import AsyncSarvamAI
async def stream_audio():
client = AsyncSarvamAI()
async with client.speech_to_text_streaming.connect(
model="saaras:v3",
high_vad_sensitivity=True,
flush_signal=True
) as ws:
with open("audio.wav", "rb") as f:
audio_base64 = base64.b64encode(f.read()).decode("utf-8")
await ws.transcribe(audio=audio_base64, encoding="audio/wav", sample_rate=16000)
await ws.flush()
response = await ws.recv()
print(response)
asyncio.run(stream_audio())支持最长8小时的会话。对于电话音频,使用。
sample_rate=8000Gotchas
注意事项
| Gotcha | Detail |
|---|---|
| REST: 30s limit | Audio >30s fails. Use Batch API or WebSocket for longer files. |
| JS method name | |
| WebSocket codecs | Only |
| WebSocket audio | Must be base64-encoded. Use |
| Flush signal | |
| Short audio detection | Set |
| 注意点 | 详情 |
|---|---|
| REST接口:30秒限制 | 音频时长超过30秒会失败。对于更长的文件,请使用批量API或WebSocket。 |
| JavaScript方法名 | |
| WebSocket编码格式 | 仅支持 |
| WebSocket音频要求 | 必须经过base64编码。对于电话音频,使用 |
| 刷新信号 | |
| 短音频检测 | 对于时长小于3秒的音频,请显式设置 |
Full Docs
完整文档
Fetch streaming protocol, batch API SDK examples, and codec details from:
- https://docs.sarvam.ai/llms.txt — comprehensive docs index
- STT Overview
- Streaming API
- Batch API + Diarization
- Rate Limits
可从以下链接获取流式传输协议、批量API SDK示例以及编码格式详情: