사르밤
Mastra의 SarvamVoice 클래스는 Sarvam AI Model을 사용하여 텍스트 음성 변환 및 음성 텍스트 변환 기능을 제공합니다.
사용예사용예에 대한 직접 링크
import { SarvamVoice } from '@mastra/voice-sarvam'
// Initialize with default configuration using environment variables
const voice = new SarvamVoice()
// Or initialize with specific configuration
const voiceWithConfig = new SarvamVoice({
speechModel: {
model: 'bulbul:v3',
apiKey: process.env.SARVAM_API_KEY!,
language: 'en-IN',
properties: {
pace: 1.0,
temperature: 0.6,
speech_sample_rate: 24000,
output_audio_codec: 'wav',
},
},
listeningModel: {
model: 'saarika:v2.5',
apiKey: process.env.SARVAM_API_KEY!,
languageCode: 'en-IN',
filetype: 'wav',
},
speaker: 'shubh', // Default voice for bulbul:v3
})
// Convert text to speech
const audioStream = await voice.speak('Hello, how can I help you?')
// Convert speech to text
const text = await voice.listen(audioStream, {
filetype: 'wav',
})
Sarvam API 문서 -Sarvam API 문서 -에 대한 직접 링크
https://docs.sarvam.ai/api-reference-docs/text-to-speech/convert
구성구성에 대한 직접 링크
생성자 옵션생성자 옵션에 대한 직접 링크
speechModel?:
SarvamVoiceConfig
= { model: 'bulbul:v3', language: 'en-IN' }
텍스트-음성 합성을 위한 구성입니다.
SarvamVoiceConfig
apiKey?:
string
Sarvam API 키입니다. 지정하지 않으면 SARVAM_API_KEY 환경 변수를 사용합니다.
model?:
SarvamTTSModel
텍스트-음성 변환에 사용할 Model을 지정합니다. 사용 가능한 옵션: bulbul:v2, bulbul:v3, bulbul:v3-beta. bulbul:v3-beta는 bulbul:v3와 동일한 화자 카탈로그를 공유하는 베타 변형입니다. 참고: Sarvam에서 bulbul:v1을 지원 중단했으며 더 이상 지원되지 않습니다.
language:
SarvamTTSLanguage
음성 합성의 대상 언어입니다. 사용 가능한 옵션: hi-IN, bn-IN, kn-IN, ml-IN, mr-IN, od-IN, pa-IN, ta-IN, te-IN, en-IN, gu-IN
properties?:
object
사용자 정의를 위한 추가 음성 속성입니다.
properties.pace?:
number
오디오 속도를 제어합니다. bulbul:v2(범위 0.3–3.0)와 bulbul:v3(범위 0.5–2.0)에서 모두 지원됩니다.
properties.temperature?:
number
생성되는 음성의 무작위성을 제어하는 샘플링 온도입니다. bulbul:v3에서만 사용할 수 있습니다. 범위: 0.01–2.0. 기본값: 0.6.
properties.dict_id?:
string
발음 사전 ID입니다. bulbul:v3에서만 사용할 수 있습니다.
properties.pitch?:
number
오디오의 피치를 제어합니다. 값이 낮을수록 더 깊은 음성이 생성되고, 높을수록 더 날카로운 음성이 생성됩니다. bulbul:v2에서만 사용할 수 있습니다. 범위: -0.75~0.75.
properties.loudness?:
number
오디오의 음량을 제어합니다. bulbul:v2에서만 사용할 수 있습니다. 범위: 0.3~3.0.
properties.enable_preprocessing?:
boolean
영어 단어와 숫자 엔터티(숫자, 날짜 등)의 정규화를 활성화합니다. bulbul:v2에서만 사용할 수 있습니다. 기본값은 false입니다.
properties.speech_sample_rate?:
8000 | 16000 | 22050 | 24000 | 32000 | 44100 | 48000
Hz 단위의 오디오 샘플링 속도입니다.
properties.output_audio_codec?:
'mp3' | 'wav' | 'linear16' | 'mulaw' | 'alaw' | 'opus' | 'flac' | 'aac'
출력 오디오 코덱입니다.
speaker?:
SarvamVoiceId
= 'shubh'
출력 오디오에 사용할 화자입니다. 기본값은 'shubh'입니다. bulbul:v3는 39개 음성(shubh, aditya, ritu, priya, neha, rahul, pooja, rohan, simran, kavya, amit, dev, ishita, shreya, ratan, varun, manan, sumit, roopa, kabir, aayan, ashutosh, advait, amelia, sophia, anand, tanya, tarun, sunny, mani, gokul, vijay, shruti, suhani, mohit, kavitha, rehan, soham, rupali)을 지원합니다. bulbul:v2는 7개 음성(anushka, manisha, vidya, arya, abhilash, karun, hitesh)을 지원합니다. 서로 다른 Model 버전 간에 화자를 바꿔 사용할 수 없습니다.
listeningModel?:
SarvamListenOptions
= { model: 'saarika:v2.5', languageCode: 'unknown' }
음성-텍스트 인식을 위한 구성입니다.
SarvamListenOptions
apiKey?:
string
Sarvam API 키입니다. 지정하지 않으면 SARVAM_API_KEY 환경 변수를 사용합니다.
model?:
SarvamSTTModel
음성-텍스트 변환에 사용할 Model을 지정합니다. 사용 가능한 옵션: saarika:v2.5(음성 변환), saaras:v3(다중 모드: transcribe/translate/verbatim/translit/codemix). 참고: Sarvam에서 saarika:v1, saarika:v2, saarika:flash를 지원 중단했습니다.
languageCode?:
SarvamSTTLanguage
입력 오디오의 BCP-47 언어 코드입니다. saarika:v2.5와 saaras:v3에서는 선택 사항입니다('unknown'을 전달하면 API가 언어를 자동으로 감지합니다). 사용 가능한 옵션: unknown, hi-IN, bn-IN, kn-IN, ml-IN, mr-IN, od-IN, pa-IN, ta-IN, te-IN, en-IN, gu-IN.
filetype?:
'mp3' | 'wav'
입력 스트림의 오디오 형식입니다.
mode?:
SarvamSTTMode
작동 모드입니다. saaras:v3 Model을 사용할 때만 유효하며 saarika:v2.5에서는 무시됩니다. 사용 가능한 옵션: 'transcribe', 'translate', 'verbatim', 'translit', 'codemix'.
행동 양식행동 양식에 대한 직접 링크
speak()speak에 대한 직접 링크
Sarvam의 텍스트 음성 변환 Model을 사용하여 텍스트를 음성으로 변환합니다.
input:
string | NodeJS.ReadableStream
음성으로 변환할 텍스트 또는 텍스트 스트림입니다.
options?:
Options
구성 옵션입니다.
Options
speaker?:
SarvamVoiceId
음성 합성에 사용할 음성 ID입니다.
보고:Promise<NodeJS.ReadableStream>
listen()listen에 대한 직접 링크
Sarvam의 음성 인식 Model을 사용하여 오디오를 녹음합니다.
input:
NodeJS.ReadableStream
텍스트로 변환할 오디오 스트림입니다.
options?:
SarvamListenOptions
음성 인식을 위한 구성 옵션입니다.
보고:Promise<string>
getSpeakers()getspeakers에 대한 직접 링크
사용 가능한 음성 옵션의 배열을 반환합니다.
보고:Promise<Array<{voiceId: SarvamVoiceId}>>
메모메모에 대한 직접 링크
- API 키는 생성자 옵션 또는
SARVAM_API_KEY환경 변수를 통해 제공할 수 있습니다. - API 키가 제공되지 않으면 생성자에서 오류가 발생합니다.
- 이 서비스는
https://api.sarvam.ai의 Sarvam AI API와 통신합니다. - 오디오는 바이너리 오디오 데이터가 포함된 스트림으로 반환됩니다.
- 음성 인식은 mp3 및 wav 오디오 형식을 지원합니다.
- Sarvam에서
bulbul:v1,saarika:v1,saarika:v2,saarika:flash를 지원 중단했으며 더 이상 지원되지 않습니다. TTS에는bulbul:v3(또는bulbul:v2)를 사용하고 STT에는saarika:v2.5(또는saaras:v3)를 사용하세요. bulbul:v2와bulbul:v3간에는 화자 이름을 바꿔 사용할 수 없습니다. 각 Model 버전에는 고유한 화자 카탈로그가 있습니다.