Aller au contenu principal

Azure

La classe AzureVoice de Mastra fournit des fonctionnalités de synthèse et de reconnaissance vocales à l'aide de Microsoft Azure Cognitive Services.

Exemple d'utilisation
Lien direct vers Exemple d'utilisation

Cette utilisation nécessite des identifiants Azure Speech Services, qui peuvent être fournis par des variables d'environnement ou directement dans la configuration :

import { AzureVoice } from '@mastra/voice-azure'

// Initialize with configuration
const voice = new AzureVoice({
speechModel: {
apiKey: 'your-azure-speech-api-key', // Or use AZURE_API_KEY env var
region: 'eastus', // Or use AZURE_REGION env var
voiceName: 'en-US-AriaNeural', // Optional: specific voice for TTS
},
listeningModel: {
apiKey: 'your-azure-speech-api-key', // Or use AZURE_API_KEY env var
region: 'eastus', // Or use AZURE_REGION env var
language: 'en-US', // Optional: recognition language for STT
},
speaker: 'en-US-JennyNeural', // Optional: default voice
})

// Convert text to speech
const audioStream = await voice.speak('Hello, how can I help you?', {
speaker: 'en-US-GuyNeural', // Optional: override default voice
})

// Convert speech to text
const text = await voice.listen(audioStream)

Configuration
Lien direct vers Configuration

Options du constructeur
Lien direct vers Options du constructeur

speechModel?:

AzureSpeechConfig
Configuration de la synthèse vocale.
AzureSpeechConfig

apiKey?:

string
Clé API Azure Speech Services (PAS une clé Azure OpenAI). Utilise la variable d'environnement AZURE_API_KEY à défaut.

region?:

string
Région Azure (par exemple, 'eastus', 'westeurope'). Utilise la variable d'environnement AZURE_REGION à défaut.

voiceName?:

string
Identifiant de la voix pour la synthèse vocale (par exemple, 'en-US-AriaNeural', 'en-US-JennyNeural'). Utilisé uniquement dans speechModel. Consultez la liste des voix ci-dessous.

language?:

string
Code de langue de la reconnaissance (par exemple, 'en-US', 'fr-FR'). Utilisé uniquement dans listeningModel.

listeningModel?:

AzureSpeechConfig
Configuration de la reconnaissance vocale.
AzureSpeechConfig

apiKey?:

string
Clé API Azure Speech Services (PAS une clé Azure OpenAI). Utilise la variable d'environnement AZURE_API_KEY à défaut.

region?:

string
Région Azure (par exemple, 'eastus', 'westeurope'). Utilise la variable d'environnement AZURE_REGION à défaut.

voiceName?:

string
Identifiant de la voix pour la synthèse vocale (par exemple, 'en-US-AriaNeural', 'en-US-JennyNeural'). Utilisé uniquement dans speechModel. Consultez la liste des voix ci-dessous.

language?:

string
Code de langue de la reconnaissance (par exemple, 'en-US', 'fr-FR'). Utilisé uniquement dans listeningModel.

speaker?:

string
Identifiant par défaut de la voix pour la synthèse vocale.

Méthodes
Lien direct vers Méthodes

speak()
Lien direct vers speak

Convertit du texte en parole à l'aide du service de synthèse vocale neuronale d'Azure.

input:

string | NodeJS.ReadableStream
Texte ou flux de texte à convertir en parole.

options?:

Options
Options de configuration.
Options

speaker?:

string
Identifiant de la voix à utiliser pour la synthèse vocale (par exemple, 'en-US-JennyNeural'). Remplace la voix par défaut.

Renvoie : Promise<NodeJS.ReadableStream> - Flux audio au format WAV

listen()
Lien direct vers listen

Transcrit un contenu audio à l'aide du service de reconnaissance vocale d'Azure.

audioStream:

NodeJS.ReadableStream
Flux audio à transcrire. Doit être au format WAV.

Renvoie : Promise<string> - Texte reconnu à partir du contenu audio

Les paramètres de langue et de reconnaissance sont définis dans la configuration listeningModel lors de l'initialisation ; ils ne sont pas transmis en tant qu'options à cette méthode.

getSpeakers()
Lien direct vers getspeakers

Renvoie un tableau des options de voix disponibles (plus de 200 voix), dont chaque élément contient :

voiceId:

string
Identifiant unique de la voix (par exemple, 'en-US-JennyNeural', 'fr-FR-DeniseNeural')

language:

string
Code de langue extrait de l'identifiant de la voix (par exemple, 'en', 'fr')

region:

string
Code de région extrait de l'identifiant de la voix (par exemple, 'US', 'GB', 'FR')

Renvoie : Promise<Array<{ voiceId: string; language: string; region: string; }>>

Remarques importantes
Lien direct vers Remarques importantes

Azure Speech Services et Azure OpenAI
Lien direct vers Azure Speech Services et Azure OpenAI

⚠️ Important : ce package utilise Azure Speech Services, qui est distinct d'Azure OpenAI Services.

  • N'utilisez pas votre AZURE_OPENAI_API_KEY avec ce package
  • Utilisez une clé d'abonnement Azure Speech Services (à obtenir dans le portail Azure, sous « Speech Services »)
  • Il s'agit de ressources Azure distinctes, avec des clés API et des endpoints différents

Variables d'environnement
Lien direct vers Variables d'environnement

Les clés API et les régions peuvent être fournies au moyen des options du constructeur ou de variables d'environnement :

  • AZURE_API_KEY - Votre clé d'abonnement Azure Speech Services
  • AZURE_REGION - Votre région Azure (par exemple, 'eastus', 'westeurope')

Capacités vocales
Lien direct vers Capacités vocales

  • Azure propose plus de 200 voix neuronales dans plus de 50 langues
  • Chaque identifiant de voix suit le format : {language}-{region}-{name}Neural (par exemple, 'en-US-JennyNeural')
  • Certaines voix sont multilingues ou proposent des variantes en qualité HD
  • La sortie audio est au format WAV
  • L'entrée audio destinée à la reconnaissance doit être au format WAV

Voix disponibles
Lien direct vers Voix disponibles

Azure propose plus de 200 voix neuronales dans de nombreuses langues. Parmi les voix anglaises les plus populaires figurent :

  • Anglais américain :

    • en-US-AriaNeural (féminine, par défaut)
    • en-US-JennyNeural (féminine)
    • en-US-GuyNeural (masculine)
    • en-US-DavisNeural (masculine)
    • en-US-AvaNeural (féminine)
    • en-US-AndrewNeural (masculine)
  • Anglais britannique :

    • en-GB-SoniaNeural (féminine)
    • en-GB-RyanNeural (masculine)
    • en-GB-LibbyNeural (féminine)
  • Anglais australien :

    • en-AU-NatashaNeural (féminine)
    • en-AU-WilliamNeural (masculine)

Pour obtenir la liste complète des plus de 200 voix :

const voices = await voice.getSpeakers()
console.log(voices) // Array of { voiceId, language, region }

Pour plus d'informations, consultez la documentation Azure Neural TTS.