Transcription audio-anglais en texte avec Hugging Face | NLP Python

Find AI Tools
No difficulty
No complicated process
Find ai tools

Transcription audio-anglais en texte avec Hugging Face | NLP Python

📋 Table of Contents

  1. 🎯 Introduction
  2. 🌟 Understanding Hugging Face Transformers
  3. 🤔 What is Wave-to-Wake?
  4. 💻 How to Perform Speech Transcription with Hugging Face Transformers
    • 4.1 Installing Hugging Face Transformers Library
    • 4.2 Managing Audio Files with Librosa
    • 4.3 PyTorch and the Transformers Classes
  5. 🔽 Downloading Pre-trained Models
  6. 🔊 Converting the Audio File to 16,000 Hz
    • 6.1 Using Audacity
    • 6.2 Online Tools for Audio Conversion
  7. 📥 Loading the Audio File and Setting Sample Rate
    • 7.1 Using Librosa's load Function
  8. 🚀 Tokenizing and Preparing Input Values
    • 8.1 Using the Wave2Vec Tokenizer
    • 8.2 Obtaining Tensors in PyTorch Format
  9. 📶 Obtaining Logits and Predicted Values
    • 9.1 Understanding Logits and Non-normalized Predictions
    • 9.2 Applying the Softmax Function for Normalization
  10. 📝 Decoding Predicted IDs and Obtaining Transcriptions
    • 10.1 Using the Tokenizer's Decode Function
    • 10.2 Generating Transcriptions from Predicted IDs
  11. 💡 The Simplicity and Accuracy of Wave-to-Wake
    • 11.1 Comparing Different Voices and Accents
    • 11.2 Trying Wave-to-Wake on Hugging Face Website
    • 11.3 Recording Audio from the Browser
  12. ⚠️ Note on GPU Environment and Performance
    • 12.1 Running on CPU or GPU
    • 12.2 Remarkable Speed and Convenience
  13. 🌐 Enhancing Possibilities with Hugging Face Transformers
    • 13.1 Building a Streamlit Application
    • 13.2 Unleashing the Potential of Speech Transcription
  14. 🔗 Resources

🎯 Introduction

Bienvenue dans cet article de One Little Coder. Aujourd'hui, je vais vous montrer comment vous pouvez effectuer une transcription vocale de la même manière que vous réalisez du traitement du langage naturel (NLP) avec les Transformers de Hugging Face. Oui, vous avez bien entendu ! Dans leur dernière mise à jour des Transformers, Hugging Face a ajouté une fonctionnalité très populaire : le modèle Wave-to-Wake. Cette fonctionnalité vous permet de fournir un fichier audio et d'obtenir une transcription en anglais. Dans cet article, nous allons voir comment réaliser cette transcription avec le modèle Wave-to-Wake en utilisant les Transformers de Hugging Face. Alors, allons-y !

🌟 Understanding Hugging Face Transformers

Les Transformers de Hugging Face sont une bibliothèque populaire pour l'apprentissage profond, en particulier dans le domaine du traitement du langage naturel (NLP). Ils proposent une large gamme de modèles pré-entraînés ainsi que des outils pour travailler avec ces modèles. Les Transformers sont largement utilisés dans l'industrie et la recherche pour des tâches telles que la classification de texte, la génération de texte et bien plus encore. Le modèle Wave-to-Wake est l'un des nouveaux ajouts passionnants aux Transformers de Hugging Face.

🤔 What is Wave-to-Wake?

Wave-to-Wake est un modèle développé par Hugging Face qui vous permet de réaliser des transcriptions vocales. Ce modèle est entraîné à partir d'un concept appelé "Connectionist Temporal Classification" (CTC), qui est utilisé pour traiter les séquences temporelles. Cela signifie que le modèle peut comprendre et transcrire des fichiers audio en texte. Wave-to-Wake propose des transcriptions en anglais, mais nous allons vérifier si d'autres langues sont disponibles.

💻 How to Perform Speech Transcription with Hugging Face Transformers

4.1 Installing Hugging Face Transformers Library

Avant de commencer, nous devons installer la bibliothèque Transformers de Hugging Face. Vous pouvez le faire en exécutant la commande suivante :

!pip install transformers

4.2 Managing Audio Files with Librosa

La bibliothèque Librosa est un outil puissant pour gérer les fichiers audio. Elle offre des fonctionnalités telles que le chargement des fichiers audio, la récupération des taux d'échantillonnage et bien plus encore. Pour l'utiliser, vous devez l'installer en exécutant la commande suivante :

!pip install librosa

4.3 PyTorch and the Transformers Classes

Nous aurons également besoin de la bibliothèque PyTorch pour travailler avec les Transformers de Hugging Face. Assurez-vous de l'installer en exécutant la commande suivante :

!pip install torch

Nous aurons besoin de deux classes de la bibliothèque Transformers : Wave2VecForCTC et Wave2Vec2Tokenizer. Vérifions comment les charger :

from transformers import Wave2VecForCTC, Wave2Vec2Tokenizer

🔽 Downloading Pre-trained Models

La première étape consiste à télécharger les modèles pré-entraînés nécessaires pour effectuer la transcription vocale. Heureusement, Hugging Face rend cela très facile avec sa classe "pipeline". Exécutez le code suivant pour télécharger les modèles :

from transformers import pipeline

transcription_pipeline = pipeline("text2text-generation", model="facebook/wav2vec2-base-960h")

🔊 Converting the Audio File to 16,000 Hz

Pour utiliser le modèle Wave-to-Wake, nous devons nous assurer que notre fichier audio est échantillonné à une fréquence de 16 000 Hz. Si notre fichier audio n'a pas déjà cette fréquence, nous devons le convertir. Il existe plusieurs façons de le faire :

6.1 Using Audacity

Une façon de convertir la fréquence d'échantillonnage de notre fichier audio est d'utiliser une application comme Audacity. Suivez les étapes suivantes dans Audacity :

  1. Ouvrez votre fichier audio.
  2. Accédez à "File" (Fichier) > "Export" (Exporter) > "Export as WAV" (Exporter au format WAV).
  3. Choisissez un emplacement de destination et donnez un nom à votre fichier.
  4. Dans le menu déroulant "Save as Type" (Enregistrer en tant que type), sélectionnez "WAV (Microsoft) signed 16-bit PCM".
  5. En dessous, vous verrez une option "Options..." (Options...). Cliquez dessus.
  6. Dans la fenêtre "Other uncompressed files" (Autres fichiers non compressés), sélectionnez "Signed 16-bit PCM".
  7. Vous verrez ensuite une option "Header" (En-tête) avec un menu déroulant "Encoding" (Encodage). Sélectionnez "16-bit PCM".
  8. Dans le champ "Rate (Hz)" (Fréquence (Hz)), entrez "16000".
  9. Cliquez sur "OK" pour fermer la fenêtre "Options...".
  10. Cliquez sur "Save" (Enregistrer) pour convertir votre fichier audio en 16 000 Hz.

6.2 Online Tools for Audio Conversion

Si vous n'avez pas accès à Audacity, vous pouvez utiliser des outils en ligne pour convertir votre fichier audio en 16 000 Hz. Il existe de nombreux sites web qui offrent ce service, il vous suffit de rechercher "audio sample rate converter online" (convertisseur de fréquence d'échantillonnage audio en ligne) sur votre moteur de recherche préféré. Suivez les instructions spécifiques pour convertir votre fichier audio.

Une fois que vous avez converti votre fichier audio en 16 000 Hz, vous pouvez le charger dans notre programme Python.

📥 Loading the Audio File and Setting Sample Rate

Pour le chargement du fichier audio, nous utiliserons la fonction load de la bibliothèque Librosa. Cette fonction nous permettra de charger le fichier audio et de spécifier le taux d'échantillonnage souhaité (16 000 Hz). Voici comment procéder :

import librosa

audio_path = "chemin_vers_votre_fichier_audio.wav"
sample_rate = 16000

audio, _ = librosa.load(audio_path, sr=sample_rate)

Assurez-vous de remplacer "chemin_vers_votre_fichier_audio.wav" par le chemin d'accès réel vers votre fichier audio.

🚀 Tokenizing and Preparing Input Values

Maintenant que nous avons chargé notre fichier audio, nous devons le tokeniser et préparer les valeurs d'entrée pour notre modèle Wave-to-Wake. Pour ce faire, nous utiliserons le tokenizer Wave2Vec2Tokenizer de la bibliothèque Transformers. Voici comment l'utiliser :

8.1 Using the Wave2Vec Tokenizer

tokenizer = Wave2Vec2Tokenizer.from_pretrained("facebook/wav2vec2-base-960h")

8.2 Obtaining Tensors in PyTorch Format

input_values = tokenizer(audio, return_tensors="pt").input_values

📶 Obtaining Logits and Predicted Values

Maintenant que nous avons préparé les valeurs d'entrée, nous allons les utiliser pour obtenir les logits et les valeurs prédites de notre modèle. Les logits sont les valeurs prédites non normalisées, tandis que les valeurs prédites sont les valeurs normalisées obtenues à partir des logits. Voyons comment effectuer cette étape :

9.1 Understanding Logits and Non-normalized Predictions

model = Wave2VecForCTC.from_pretrained("facebook/wav2vec2-base-960h")
logits = model(input_values).logits

9.2 Applying the Softmax Function for Normalization

import torch.nn.functional as F

predicted_ids = torch.argmax(F.softmax(logits, dim=-1), dim=-1)

📝 Decoding Predicted IDs and Obtaining Transcriptions

Nous avons maintenant nos valeurs prédites sous forme d'IDs et nous devons les décoder pour obtenir la transcription finale. Pour ce faire, nous utiliserons la fonction decode du tokenizer. Voici comment cela fonctionne :

10.1 Using the Tokenizer's Decode Function

transcriptions = tokenizer.batch_decode(predicted_ids)[0]

10.2 Generating Transcriptions from Predicted IDs

print(transcriptions)

💡 The Simplicity and Accuracy of Wave-to-Wake

Le modèle Wave-to-Wake de Hugging Face est incroyablement simple à utiliser et offre des résultats précis. Dans notre exemple, vous avez pu constater que la transcription de la voix d'Harvey Dent était exacte. Cependant, il est important de noter que certaines voix, comme celle de Batman, peuvent ne pas être transcrits aussi précisément. Cependant, la simplicité et la précision de Wave-to-Wake en font un outil puissant pour toute personne souhaitant réaliser des transcriptions vocales.

⚠️ Note on GPU Environment and Performance

Il est important de noter que dans cet exemple, nous avons effectué la transcription vocale en utilisant l'environnement CPU plutôt que l'environnement GPU. Cela démontre à quel point Wave-to-Wake est performant même sur le processeur. Si vous disposez d'un GPU, vous pouvez l'utiliser pour des performances encore meilleures. Dans tous les cas, vous serez étonné de la vitesse à laquelle le modèle réalise les transcriptions.

🌐 Enhancing Possibilities with Hugging Face Transformers

Avec les Transformers de Hugging Face, les possibilités sont infinies. Vous pouvez créer une application Streamlit permettant aux utilisateurs d'uploader leurs propres fichiers audio pour obtenir des transcriptions. L'utilisation de modèles pré-entraînés tels que Wave-to-Wake dans le même écosystème facilite grandement l'exploitation de ces fonctionnalités. Profitez de cette puissance et n'hésitez pas à partager vos réalisations avec la communauté !

🔗 Resources

Most people like

Are you spending too much time looking for ai tools?
App rating
4.9
AI Tools
100k+
Trusted Users
5000+
WHY YOU SHOULD CHOOSE TOOLIFY

TOOLIFY is the best ai tool source.