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 :

  1. Assurez-vous que curl est installé sur votre système et que vous disposez d'une clé API OpenAI valide.
  2. 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.