Speech-to-Text (STT)
La fonctionnalité Speech-to-Text (STT) de Mastra fournit une interface standardisée pour convertir une entrée audio en texte auprès de plusieurs fournisseurs de services. STT permet aux applications compatibles avec la voix de répondre à la parole humaine. Elle prend en charge les interactions mains libres et améliore l’accessibilité pour les utilisateurs en situation de handicap. Elle offre également une interface plus naturelle.
ConfigurationLien direct vers Configuration
Pour utiliser STT dans Mastra, vous devez fournir un listeningModel lors de l’initialisation du fournisseur vocal. Celui-ci comprend des paramètres tels que :
name: le modèle STT spécifique à utiliser.apiKey: votre clé API d’authentification.- Options propres au fournisseur : options supplémentaires qui peuvent être requises ou prises en charge par le fournisseur vocal concerné.
Comportement : tous ces paramètres sont facultatifs. Vous pouvez utiliser les paramètres par défaut fournis par le fournisseur vocal ; ils dépendent du fournisseur que vous utilisez.
const voice = new OpenAIVoice({
listeningModel: {
name: 'whisper-1',
apiKey: process.env.OPENAI_API_KEY,
},
})
// If using default settings the configuration can be simplified to:
const voice = new OpenAIVoice()
Fournisseurs disponiblesLien direct vers Fournisseurs disponibles
Mastra prend en charge plusieurs fournisseurs Speech-to-Text, chacun ayant ses propres capacités et atouts :
- OpenAI : transcription de haute précision avec les modèles Whisper
- Azure : reconnaissance vocale de Microsoft offrant une fiabilité adaptée aux entreprises
- ElevenLabs : reconnaissance vocale avancée prenant en charge plusieurs langues
- Google : reconnaissance vocale de Google avec une prise en charge étendue des langues
- Cloudflare : reconnaissance vocale optimisée pour l’edge, destinée aux applications à faible latence
- Deepgram : reconnaissance vocale alimentée par l’IA, très précise pour différents accents
- Sarvam : spécialisé dans les langues et accents indiens
Chaque fournisseur est implémenté sous forme de package distinct, que vous pouvez installer selon vos besoins :
pnpm add @mastra/voice-openai@latest # Example for OpenAI
Utiliser la méthode listenLien direct vers Utiliser la méthode listen
La méthode principale de STT est listen(), qui convertit un contenu audio parlé en texte. Voici comment l’utiliser :
import { Agent } from '@mastra/core/agent'
import { OpenAIVoice } from '@mastra/voice-openai'
import { getMicrophoneStream } from '@mastra/node-audio'
const voice = new OpenAIVoice()
const agent = new Agent({
id: 'voice-agent',
name: 'Voice Agent',
instructions: 'You are a voice assistant that provides recommendations based on user input.',
model: 'openai/gpt-5.6-sol',
voice,
})
const audioStream = getMicrophoneStream() // Assume this function gets audio input
const transcript = await agent.voice.listen(audioStream, {
filetype: 'm4a', // Optional: specify the audio file type
})
console.log(`User said: ${transcript}`)
const { text } = await agent.generate(
`Based on what the user said, provide them a recommendation: ${transcript}`,
)
console.log(`Recommendation: ${text}`)
Transcrire un fichier audioLien direct vers Transcrire un fichier audio
La méthode listen() accepte un flux de données audio provenant d’un microphone ou d’un fichier. Utilisez createReadStream() lorsque vous souhaitez transcrire un fichier audio :
import { createReadStream } from 'fs'
import path from 'path'
const audioFilePath = path.join(process.cwd(), 'agent.m4a')
const audioStream = createReadStream(audioFilePath)
const transcription = await agent.voice.listen(audioStream, {
filetype: 'm4a',
})
console.log(`Transcription: ${transcription}`)
Pour une présentation plus générale des fournisseurs vocaux associés aux Agents, consultez Voice dans Mastra.