@mastra/voice-sarvam
Version:
Mastra Sarvam AI voice integration
68 lines (53 loc) • 2.44 kB
TypeScript
import { MastraVoice } from '@mastra/core/voice';
export declare const SARVAM_STT_LANGUAGES: readonly ["hi-IN", "bn-IN", "kn-IN", "ml-IN", "mr-IN", "od-IN", "pa-IN", "ta-IN", "te-IN", "en-IN", "gu-IN", "unknown"];
export declare const SARVAM_STT_MODELS: readonly ["saarika:v1", "saarika:v2", "saarika:flash"];
export declare const SARVAM_TTS_LANGUAGES: readonly ["hi-IN", "bn-IN", "kn-IN", "ml-IN", "mr-IN", "od-IN", "pa-IN", "ta-IN", "te-IN", "en-IN", "gu-IN"];
export declare const SARVAM_TTS_MODELS: readonly ["bulbul:v1"];
export declare const SARVAM_VOICES: readonly ["meera", "pavithra", "maitreyi", "arvind", "amol", "amartya", "diya", "neel", "misha", "vian", "arjun", "maya"];
declare interface SarvamListenOptions {
apiKey?: string;
model?: SarvamSTTModel;
languageCode?: SarvamSTTLanguage;
filetype?: 'mp3' | 'wav';
}
export declare type SarvamSTTLanguage = (typeof SARVAM_STT_LANGUAGES)[number];
export declare type SarvamSTTModel = (typeof SARVAM_STT_MODELS)[number];
export declare type SarvamTTSLanguage = (typeof SARVAM_TTS_LANGUAGES)[number];
export declare type SarvamTTSModel = (typeof SARVAM_TTS_MODELS)[number];
export declare class SarvamVoice extends MastraVoice {
private apiKey?;
private model;
private language;
private properties;
protected speaker: SarvamVoiceId;
private baseUrl;
constructor({ speechModel, speaker, listeningModel, }?: {
speechModel?: SarvamVoiceConfig;
speaker?: SarvamVoiceId;
listeningModel?: SarvamListenOptions;
});
private makeRequest;
private streamToString;
speak(input: string | NodeJS.ReadableStream, options?: {
speaker?: SarvamVoiceId;
}): Promise<NodeJS.ReadableStream>;
getSpeakers(): Promise<{
voiceId: "meera" | "pavithra" | "maitreyi" | "arvind" | "amol" | "amartya" | "diya" | "neel" | "misha" | "vian" | "arjun" | "maya";
}[]>;
listen(input: NodeJS.ReadableStream, options?: SarvamListenOptions): Promise<string>;
}
declare interface SarvamVoiceConfig {
apiKey?: string;
model?: SarvamTTSModel;
language?: SarvamTTSLanguage;
properties?: {
pitch?: number;
pace?: number;
loudness?: number;
speech_sample_rate?: 8000 | 16000 | 22050;
enable_preprocessing?: boolean;
eng_interpolation_wt?: number;
};
}
export declare type SarvamVoiceId = (typeof SARVAM_VOICES)[number];
export { }