1. Présentation des modèles de parole
1.1. Introduction aux modèles TTS et STT d'OpenAI
Modèle de Text-to-Speech (TTS)
Le modèle TTS d'OpenAI peut convertir les données textuelles en sortie vocale. Ce processus implique une analyse textuelle, l'application d'algorithmes de synthèse vocale et des ajustements de qualité sonore. Il permet à l'ordinateur de lire n'importe quel texte écrit, rendant le contenu plus compréhensible et accessible. Le TTS est une technologie importante pour les personnes malvoyantes, les conducteurs ou toute personne préférant recevoir des informations par l'écoute.
Modèle de Speech-to-Text (STT)
Correspondant au TTS, le modèle STT peut convertir les informations vocales en texte écrit. Lors du traitement de l'entrée audio d'origine, le système STT effectue d'abord une détection de la parole, suivie d'une extraction des caractéristiques. Il mappe ensuite le signal audio sur le vocabulaire à l'aide de modèles acoustiques et linguistiques, générant finalement une sortie textuelle. La technologie STT est largement utilisée dans la reconnaissance vocale, la transcription de réunions et la génération de légendes en temps réel.
1.2. Scénarios d'application
- Lecture à voix haute de blogs
- Génération de discours multilingues
3. API Text-to-Speech
3.1. Démarrage rapide
Dans cette section, nous allons vous montrer comment convertir rapidement du texte en discours à l'aide de la commande curl et d'un client Python. Que vous soyez développeur ou utilisateur non technique, vous pouvez facilement générer des fichiers audio en envoyant simplement une requête API.
Envoi de requêtes avec Curl
Pour générer de la parole en utilisant l'outil de ligne de commande curl, suivez ces étapes :
- Assurez-vous que curl est installé sur votre système et que vous disposez d'une clé API OpenAI valide.
- Utilisez la commande curl suivante pour convertir du texte en discours :
curl https://api.openai.com/v1/audio/speech \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "tts-1",
"input": "Aujourd'hui est une excellente journée pour créer des produits que les gens adorent!",
"voice": "alloy"
}' \
--output speech.mp3
Dans la commande ci-dessus, $OPENAI_API_KEY
représente votre clé API, le champ input
est le texte que vous souhaitez convertir, le champ model
spécifie le modèle vocal à utiliser, et le paramètre voice
sélectionne la voix. Ici, nous choisissons la voix synthétique alloy
. L'option --output
finale spécifie le nom et le format du fichier de sortie.
Utilisation du client Python
Si vous préférez utiliser le langage de programmation Python, vous pouvez utiliser l'exemple de code suivant :
from openai import OpenAI
client = OpenAI()
response = client.audio.speech.create(
model="tts-1",
voice="alloy",
input="Aujourd'hui est une excellente journée pour créer des produits que les gens adorent!"
)
response.stream_to_file("output.mp3")
Dans cet extrait de code, nous importons d'abord la bibliothèque openai
et créons une instance du client OpenAI. Ensuite, nous utilisons la méthode audio.speech.create
pour envoyer une requête, spécifiant le modèle, la voix et le texte à convertir. Enfin, nous utilisons la méthode stream_to_file
pour enregistrer le flux vocal généré dans un fichier.
3.2. Choix de la qualité audio et de la voix
Sélectionner la bonne qualité audio et la bonne voix pour votre projet est une étape cruciale pour garantir la meilleure expérience utilisateur. Notre API offre deux options de modèles de qualité audio : tts-1
et tts-1-hd
.
-
tts-1
: Fournit une latence plus faible, adaptée aux applications en temps réel, mais avec une qualité audio relativement inférieure. -
tts-1-hd
: Fournit une sortie audio de meilleure qualité, adaptée aux besoins de génération de discours haute qualité non en temps réel.
En outre, l'API TTS d'OpenAI offre différentes options de voix :
- Alloy
- Echo
- Fable
- Onyx
- Nova
- Shimmer
Selon les exigences du projet et le public cible, vous pouvez tester différents échantillons de voix pour choisir la voix la plus adaptée. Tenez compte de facteurs tels que le style de parole, la vitesse de la parole et l'intonation pour trouver une voix qui transmet des émotions et un professionnalisme appropriés.
3.3. Formats de sortie et langues supportés
Par défaut, l'API TTS d'OpenAI utilise le format de sortie MP3, mais prend également en charge divers autres formats audio :
- Opus : Adapté au streaming internet et à la communication, avec une faible latence.
- AAC : Utilisé pour la compression audio numérique, préféré par des plateformes telles que YouTube, Android et iOS.
- FLAC : Format de compression audio sans perte utilisé par les audiophiles pour l'archivage.
En termes de prise en charge des langues, l'API suit principalement le modèle Whisper, offrant une large gamme d'options linguistiques pour prendre en charge de nombreuses langues nationales.
3.4. Fonctionnalité de streaming audio en temps réel
Pour répondre aux besoins des applications en temps réel, notre API prend en charge le streaming audio en temps réel. Voici un exemple en Python pour implémenter le streaming audio en temps réel :
from openai import OpenAI
client = OpenAI()
response = client.audio.speech.create(
model="tts-1",
voice="alloy",
input="Bonjour tout le monde ! C'est un test de streaming.",
)
response.stream_to_file("output.mp3")
4. API de reconnaissance vocale
4.1. Démarrage rapide
Dans cette section, nous allons principalement présenter la fonctionnalité de l'API d'OpenAI pour la reconnaissance vocale.
Tout d'abord, vous devez disposer d'une clé d'API OpenAI valide et préparer un fichier audio.
Vous pouvez utiliser la commande curl
pour envoyer une requête POST contenant le fichier audio. Remplacez OPENAI_API_KEY
par votre clé API et définissez le chemin du fichier correct.
curl --request POST \
--url https://api.openai.com/v1/audio/transcriptions \
--header 'Authorization: Bearer OPENAI_API_KEY' \
--header 'Content-Type: multipart/form-data' \
--form file=@/chemin/vers/votre/fichier/audio.mp3 \
--form model=whisper-1
Après avoir exécuté la commande ci-dessus, vous recevrez une réponse formatée en JSON contenant les informations textuelles transcrites.
Par exemple:
{
"text": "Imaginez l'idée la plus folle que vous ayez jamais eue, et imaginez comment elle pourrait évoluer pour devenir quelque chose 100, 1 000 fois plus grand. ..."
}
4.2. Formats de fichiers et tailles pris en charge
Cette API prend en charge différents formats de fichiers audio courants pour répondre à différents besoins dans différents scénarios. Les formats de fichiers pris en charge incluent, sans s'y limiter, mp3
, mp4
, mpeg
, mpga
, m4a
, wav
, webm
, etc. Cela permet aux utilisateurs de traiter facilement des fichiers audio provenant de différentes sources.
En ce qui concerne la taille du fichier, l'API actuelle a une limite de 25 Mo. Cela signifie que si votre fichier audio est plus grand que 25 Mo, vous devrez le diviser en plusieurs segments de moins de 25 Mo ou utiliser un format de compression plus efficace. Par exemple, les formats mp3
et opus
offrent généralement une compression efficace, réduisant la taille du fichier sans sacrifier trop de qualité audio.
Si vous rencontrez un fichier supérieur à 25 Mo, vous pouvez envisager d'utiliser la bibliothèque PyDub
en Python pour segmenter votre audio :
from pydub import AudioSegment
audio_file = AudioSegment.from_file("votre_fichier_audio_large.mp3")
interval = 10 * 60 * 1000 # 10 minutes
chunks = make_chunks(audio_file, interval)
for i, chunk in enumerate(chunks):
chunk_name = f"morceau_audio{i}.mp3"
chunk.export(chunk_name, format="mp3")
Dans le code ci-dessus, la fonction make_chunks
segmentera un grand fichier audio en plusieurs segments audio avec un intervalle de 10 minutes. Ces segments respectent tous la limite de taille de fichier requise par l'API et peuvent être téléchargés séparément vers l'API OpenAI pour la transcription.
Veuillez noter que bien que PyDub
nous offre une manière facile de traiter les fichiers audio, il est toujours recommandé de prêter une attention particulière à la sécurité et à la stabilité de tout logiciel tiers lors de son utilisation. OpenAI ne fournit aucune garantie pour les logiciels tiers.