Scraping Audio Web pour le Traitement IA : Un Tutoriel Complet

Scrapez de l’audio à grande échelle pour le traitement IA avec Bright Data. Apprenez la conversion de format et la transcription IA pour des résultats de qualité entreprise.
18 min de lecture
Audio Web Scraping for AI Processing

Dans cet article de blog, vous découvrirez :

  • Ce qu’est le scraping audio et comment le réaliser.
  • Les principaux défis liés au scraping d’audio sur le web et à sa préparation pour le traitement.
  • Comment scraper de l’audio à grande échelle.
  • Comment convertir l’audio scrapé au format WAV pour un traitement basé sur l’IA.
  • Comment générer des transcriptions horodatées à partir d’audio grâce aux modèles d’IA de reconnaissance vocale.
  • Cas d’usage pertinents pour les données audio scrapées.

Plongeons dans le sujet !

Comment Fonctionne le Scraping Audio Web

Le scraping audio web désigne le téléchargement automatique de contenu audio à partir de sites web. L’audio peut provenir d’un fichier autonome ou être intégré dans une vidéo.

Télécharger l’audio n’est généralement que la première étape. Dans les applications concrètes, l’objectif est d’utiliser l’audio scrapé pour une analyse automatisée, la détection de texte, ou l’entraînement de modèle IA. Pour réaliser de telles tâches, vous avez généralement aussi besoin du texte contenu dans l’audio.

C’est là que la transcription audio devient importante. En convertissant l’audio scrapé en texte, vous rendez le contenu parlé consultable. Ajouter des horodatages à chaque segment de transcription permet aussi de relier des morceaux de texte spécifiques à leurs points correspondants dans la forme d’onde audio originale.

En d’autres termes, le scraping vous donne accès à l’audio brut. Ensuite, la transcription transforme cet audio en texte structuré et lisible par machine, pouvant être employé pour un large éventail de tâches d’IA et de traitement de données.

Dans ce tutoriel, vous serez guidé à travers le processus complet. Vous apprendrez à scraper et télécharger de l’audio depuis le web, à le convertir dans un format adapté, et à le traiter avec des modèles d’IA pour générer une transcription.

Défis du Scraping Audio et Solutions

Scraper de l’audio sur le web peut sembler simple, mais construire un pipeline de traitement audio fiable implique de nombreux obstacles.

Vous devez d’abord trouver une source audio accessible, puis surmonter d’éventuelles restrictions lors de sa récupération, et enfin convertir l’audio en texte exploitable. Heureusement, chacun de ces défis peut être résolu avec les bons outils et le bon processus !

Trouver des Sources Audio sur le Web

Le premier défi consiste à trouver une source audio adaptée au scraping. Contrairement aux pages web, l’audio n’est pas toujours disponible via une URL de téléchargement directe et évidente.

Par exemple, l’audio qui vous intéresse peut provenir d’une vidéo hébergée sur des plateformes comme YouTube, Vimeo, ou Bilibili. Une solution consiste à scraper ces vidéos et à extraire leurs pistes audio, vous donnant accès à un bien plus grand ensemble de contenu audio.

Si vous souhaitez éviter complètement le scraping audio web, envisagez d’utiliser les jeux de données audio prêts pour l’IA de Bright Data. Ceux-ci sont déjà collectés et préparés pour les flux de travail d’IA et de machine learning.

Surmonter les Défis d’Accès Web et Anti-Bot

Trouver une source audio n’est qu’une partie du problème. Une fois que vous avez identifié le contenu que vous souhaitez collecter, le site cible peut appliquer des techniques anti-scraping. Celles-ci incluent les vérifications de réputation IP, les limites de débit, les CAPTCHA, les défis JavaScript, et d’autres mécanismes anti-bot.

C’est là que Bright Data peut aider. Bright Data fournit une infrastructure d’accès web conçue pour vous aider à collecter des données web publiquement disponibles à l’échelle de l’entreprise. Son portefeuille de produits inclut des solutions comme API Web Unlocker, API Browser, et services de proxy.

Le réseau de Bright Data comprend plus de 400 millions d’IPs dans 195 pays. Cette infrastructure prend en charge une concurrence illimitée, avec un taux de réussite de 99,95 % et une disponibilité de 99,99 %.

Bientôt, vous verrez comment utiliser l’API Web Unlocker pour accéder aux ressources audio de n’importe quel site. Cela nous permet de nous concentrer sur le flux de traitement audio plutôt que de construire votre propre couche d’accès web.

Convertir l’Audio en Texte Exploitable

Le dernier problème consiste à transformer l’audio scrapé en texte. Ce n’est pas toujours simple, surtout lorsque les enregistrements contiennent du bruit de fond, plusieurs locuteurs, ou une élocution peu claire. Cependant, les modèles de transcription IA modernes peuvent gérer la plupart de ces situations. Ajouter des horodatages rend la transcription encore plus utile en reliant chaque section de texte à sa position dans l’enregistrement.

Étape n°1 : Scraper la Ressource Audio depuis le Web

Le scraping audio web commence par la construction d’un système automatisé pour collecter du contenu audio sur le web. Cela peut impliquer de cibler directement des fichiers audio, comme les fichiers MP3, ou, plus couramment, de télécharger des vidéos et d’en extraire la piste audio.

Pour vous aider à surmonter les restrictions que les sites web peuvent appliquer aux bots de scraping, vous acheminerez vos requêtes automatisées via l’API Web Unlocker de Bright Data. Ainsi, vous pouvez oublier les CAPTCHA, les limites de débit, et autres restrictions d’accès.

Suivez les instructions ci-dessous !

Prérequis

Avant de commencer, assurez-vous d’avoir les éléments suivants :

– Une clé API configurée.

– Une API Web Unlocker configurée.

Suivez les liens ci-dessous pour des conseils supplémentaires :

Nous supposerons que votre API Web Unlocker s’appelle “web_unlocker” :

Notez l'API

Important : Assurez-vous d’adapter les exemples de code dans cette étape pour correspondre au nom réel de votre API Web Unlocker.

Vous pouvez également trouver les identifiants pour le mode proxy directement sur votre page API Web Unlocker :

Allez dans l’onglet “Accès natif basé sur proxy” et cliquez sur “Afficher” à côté du mot de passe. Entrez le code de vérification envoyé à votre e-mail.

Une fois que vous avez le nom d’utilisateur, le mot de passe et le port de votre API Web Unlocker, vous pouvez construire l’URL du proxy en utilisant le format suivant :

http://<WEB_UNLOCKER_API_USERNAME>:<WEB_UNLOCKER_API_PASSWORD>@brd.superproxy.io:<WEB_UNLOCKER_API_PORT>

En configurant ce proxy dans votre client HTTP Python, ses requêtes HTTP seront acheminées via votre API Web Unlocker pour contourner les systèmes anti-bot.

Remarque : Pour éviter les problèmes de vérification de certificat SSL lors de l’utilisation de l’API Web Unlocker en mode proxy, téléchargez et installez le certificat SSL Bright Data sur votre machine locale.

Télécharger une Vidéo en Ligne

Supposons que votre source audio soit une vidéo YouTube sans transcription, comme la suivante :

La vidéo cible à scraper

Comme vous pouvez le voir, l’option “Sous-titres” est désactivée.

Dans ce cas, l’audio est contenu dans une vidéo plutôt que fourni comme fichier audio autonome. Pour télécharger la vidéo, vous pouvez utiliser yt-dlp, l’un des outils en ligne de commande et bibliothèques les plus populaires pour télécharger du contenu vidéo et audio.

Gardez à l’esprit que le scraping de vidéos depuis YouTube et des plateformes similaires peut rapidement entraîner le blocage de vos requêtes, surtout en opérant à grande échelle. Pour éviter ces problèmes, vous avez besoin d’une rotation d’IP fiable et de mécanismes pour gérer les protections anti-bot.

Bright Data prend en charge yt-dlp, vous permettant d’acheminer ses requêtes via votre API Web Unlocker. Le résultat est un accès illimité aux données vidéo.

Commencez par installer yt-dlp avec pip :

python -m pip install -U "yt-dlp[default]"

Ensuite, exécutez :

yt-dlp --proxy 'http://<WEB_UNLOCKER_API_USERNAME>:<WEB_UNLOCKER_API_PASSWORD>@brd.superproxy.io:<WEB_UNLOCKER_API_PORT>' '<YOUTUBE_VIDEO_URL>' --output output.mp4

N’oubliez pas de remplacer les espaces réservés par vos identifiants d’API Web Unlocker et l’URL de votre vidéo YouTube cible.

La commande ci-dessus télécharge la vidéo YouTube spécifiée tout en acheminant la requête via votre API Web Unlocker Bright Data pour éviter les blocages. La vidéo téléchargée est ensuite enregistrée sous output.mp4 dans le répertoire de votre projet :

La vidéo

Super ! Vous avez maintenant scrapé avec succès la vidéo qui contient votre audio cible.

Si vous souhaitez scraper des vidéos depuis d’autres sources, consultez les guides suivants :

Télécharger un Fichier Audio Directement

Considérez un scénario où la ressource audio qui vous intéresse est déjà disponible en ligne sous forme de fichier autonome.

Par exemple, vous souhaiterez peut-être récupérer un enregistrement spécifique hébergé sur Internet Archive ou un autre site web. Ici, la page fournit déjà un lien de téléchargement direct pour le fichier audio :

Notez le lien pour télécharger le fichier audio

Pour automatiser le processus et aider à gérer les éventuelles restrictions d’accès, vous pouvez construire une logique d’automatisation de navigateur pour naviguer vers la page d’intérêt et découvrir l’URL de la ressource audio sous-jacente. Pour cela, vous pouvez utiliser l’API Browser de Bright Data.

Plus précisément, cette fois, l’URL directe du fichier MP3 est :

https://archive.org/download/79P137/79P137_64kb.mp3

Une fois que vous avez l’URL cible, vous pouvez l’envoyer à l’API Web Unlocker de Bright Data via une requête POST. Web Unlocker récupérera ensuite la ressource pour vous, tout en contournant les mesures anti-bot ou autres restrictions d’accès.

Commencez par installer la bibliothèque HTTP Requests :

pip install requests

Ensuite, créez un script Python avec le code suivant :

import requests

# Remplacez par votre clé API Bright Data
BRIGHT_DATA_API_KEY = "<YOUR_BRIGHT_DATA_API_KEY>"

target_audio_source = "https://archive.org/download/79P137/79P137_64kb.mp3"

# Accédez à la ressource audio via l'API Web Unlocker de Bright Data
response = requests.post(
    "https://api.brightdata.com/request",
    headers={
        "Authorization": f"Bearer {BRIGHT_DATA_API_KEY}",
        "Content-Type": "application/json",
    },
    json={
        "zone": "web_unlocker", # Remplacez par le nom réel de votre API Web Unlocker
        "url": target_audio_source,
        "format": "raw",
        "country": "us"
    },
)
response.raise_for_status()

# Exportez le contenu audio vers un fichier MP3
with open("output.mp3", "wb") as f:
    f.write(response.content)

Ce script envoie l’URL du fichier audio à l’API Web Unlocker, récupère la ressource, et enregistre le contenu retourné sur votre machine locale sous le nom output.mp3.

Remarque : Dans un script de production, stockez votre clé API Bright Data et le nom de votre API Web Unlocker dans des variables d’environnement plutôt que de les coder en dur dans votre code source.

Exécutez le script Python, et le fichier audio récupéré apparaîtra dans le répertoire de votre projet sous le nom output.mp3 :

Le fichier audio

Étape n°2 : Convertir le Fichier Audio Scrapé au Format WAV

En matière de traitement audio, de nombreux modèles d’IA multimodaux prennent en charge les fichiers WAV comme entrée. Même lorsque plusieurs formats sont pris en charge, il est utile de standardiser vos données audio scrapées en les convertissant en un seul format.

Dans ce chapitre, vous apprendrez à convertir vos fichiers audio et vidéo sources en WAV. Ainsi, ils pourront être utilisés de manière cohérente dans les étapes de traitement IA ultérieures.

Prérequis

Avant de continuer, assurez-vous que FFmpeg est installé localement. FFmpeg est un outil en ligne de commande utilisé pour convertir et traiter des fichiers audio et vidéo.

Téléchargez FFmpeg depuis le site officiel et suivez les instructions d’installation pour votre système d’exploitation.

Du Fichier Vidéo/Audio d’Entrée au WAV

Convertissez le fichier vidéo YouTube scrapé en fichier audio WAV avec cette commande :

ffmpeg -i output.mp4 -vn -acodec pcm_s16le -ar 16000 -ac 1 video_output.wav

Voici ce que fait chaque argument :

  • -i output.mp4 : Spécifie output.mp4 comme fichier d’entrée.
  • -vn : Désactive le traitement vidéo, de sorte que seul le flux audio est extrait.
  • -acodec pcm_s16le : Convertit l’audio en audio PCM non compressé utilisant un encodage signé 16 bits little-endian, un format courant pour les fichiers WAV.
  • -ar 16000 : Définit la fréquence d’échantillonnage audio à 16 000 Hz (16 kHz).
  • -ac 1 : Convertit l’audio en un seul canal (mono).
  • video_output.wav : Spécifie le nom du fichier WAV de sortie.

La même approche peut être utilisée pour convertir un fichier audio autonome depuis un autre format pris en charge vers WAV :

ffmpeg -i output.mp3 -vn -acodec pcm_s16le -ar 16000 -ac 1 audio_output.wav

Notez que la commande est essentiellement la même. Les principales différences sont le fichier d’entrée et le fichier de sortie.

Excellent ! Vous êtes maintenant prêt à transcrire l’audio scrapé avec un modèle d’IA.

Étape n°3 : Utiliser l’IA pour Transcrire le Fichier WAV

La dernière étape consiste à transmettre l’audio au format WAV à un modèle de transcription IA, soit via un LLM basé sur le cloud, soit via un modèle s’exécutant localement.

Pour cette tâche, vous pouvez utiliser un modèle d’IA conçu pour la transcription parole-texte, ou un autre modèle d’IA multimodal qui accepte l’audio en entrée. Le choix dépend de vos exigences, telles que la précision de la transcription, les horodatages, l’identification du locuteur, la vitesse de traitement, et le coût.

Obtenir la Transcription avec un Modèle d’IA Multimodal Basé sur le Cloud

OpenAI fournit plusieurs modèles et API pour la transcription parole-texte. Utilisez le SDK OpenAI pour envoyer votre fichier audio WAV à un modèle de transcription et récupérer la transcription horodatée résultante.

Commencez par installer le SDK Python OpenAI :

pip install openai

Ensuite, réalisez l’objectif avec :

from openai import OpenAI

# Remplacez par votre clé API OpenAI réelle
OPENAI_KEY = "<YOUR_OPENAI_API_KEY>"

client = OpenAI(api_key=OPENAI_KEY)

# Ouvrez le fichier audio et envoyez-le à OpenAI Whisper pour transcription
with open("video_output.wav", "rb") as f:
    transcription = client.audio.transcriptions.create(
        model="whisper-1",
        file=f,
        response_format="verbose_json",
        timestamp_granularities=["segment"],
    )

# Écrivez la transcription horodatée complète dans un fichier texte
with open("video_transcript.txt", "w", encoding="utf-8") as f:
    for segment in transcription.segments:
        # Obtenez l'heure de début et de fin du segment
        start = segment.start
        end = segment.end

        # Obtenez le texte transcrit
        text = segment.text.strip()

        # Formatez l'horodatage au format HH:MM:SS
        start_time = f"{int(start // 3600):02d}:{int((start % 3600) // 60):02d}:{int(start % 60):02d}"
        end_time = f"{int(end // 3600):02d}:{int((end % 3600) // 60):02d}:{int(end % 60):02d}"

        # Créez une ligne de transcription horodatée
        line = f"[{start_time} - {end_time}] {text}"

        # Affichez la ligne et enregistrez-la dans le fichier de transcription
        print(line)
        f.write(line + "\n")

Ce script initialise d’abord le client OpenAI à l’aide de votre clé API et ouvre le fichier WAV en mode binaire. Il envoie ensuite l’audio au modèle whisper-1 et demande une réponse JSON détaillée contenant des horodatages au niveau des segments.

Il parcourt ensuite les segments retournés, extrait l’heure de début, l’heure de fin, et le texte transcrit pour chaque segment, et les formate en lignes horodatées lisibles. Chaque ligne est affichée dans le terminal et écrite dans video_transcript.txt.

Exécutez le script Python, et vous verrez le résultat de la transcription dans votre terminal :

La sortie produite par le script dans le terminal

Une fois le traitement terminé, le fichier video_transcript.txt contiendra la transcription horodatée :

Le fichier de transcription produit par le script basé sur l'IA cloud

Mission accomplie ! Vous avez commencé avec une vidéo YouTube, l’avez scrapée, avez converti son audio au format WAV, et enfin l’avez transcrite en texte. Vous disposez maintenant d’une transcription propre pour une analyse plus approfondie.

Les principales limites de cette approche sont :

  • Taille du fichier d’entrée : Les fichiers audio soumis via l’API de transcription sont limités à 25 Mo. Pour les enregistrements plus volumineux, vous devez soit compresser l’audio pour réduire sa taille de fichier, soit le diviser en plus petits segments avant la transcription.
  • Coût : Les longs enregistrements audio peuvent entraîner une utilisation importante de l’API. Plus l’audio est long, plus de jetons d’entrée sont requis et plus de jetons de sortie sont produits.

Autrement, vous pouvez exécuter un modèle de reconnaissance vocale localement, comme indiqué dans la section suivante.

Obtenir la Transcription avec un Modèle d’IA Local

Il existe plusieurs modèles et bibliothèques locaux de reconnaissance vocale que vous pouvez utiliser pour générer des transcriptions. faster-whisper est une option populaire. Il s’agit d’une réimplémentation du modèle Whisper d’OpenAI qui utilise CTranslate2, un moteur d’inférence haute performance pour les modèles Transformer.

Installez faster-whisper avec :

pip install faster-whisper

Ensuite, utilisez-le pour générer une transcription depuis votre fichier audio local :

from faster_whisper import WhisperModel

# Chargez le modèle Whisper local
model = WhisperModel(
    "small",
    device="cpu", # Exécutez la tâche sur le CPU
    compute_type="int8"
)

# Transcrivez le fichier audio d'entrée et retournez des segments de transcription horodatés
segments, info = model.transcribe(
    "audio_output.wav",
    beam_size=5
)

# Affichez la langue détectée par Whisper
print(f"Detected language: {info.language}")

# Convertissez les secondes en horodatage lisible HH:MM:SS
def format_timestamp(seconds):
    hours = int(seconds // 3600)
    minutes = int((seconds % 3600) // 60)
    seconds = int(seconds % 60)

    return f"{hours:02d}:{minutes:02d}:{seconds:02d}"

# Écrivez chaque segment de transcription horodaté dans un fichier de sortie
with open("audio_transcript.txt", "w", encoding="utf-8") as f:
    for segment in segments:
        # Obtenez les horodatages de début et de fin pour ce segment
        start = format_timestamp(segment.start)
        end = format_timestamp(segment.end)

        # Supprimez les espaces inutiles du texte transcrit
        text = segment.text.strip()

        # Combinez les horodatages et la transcription en une seule ligne
        line = f"[{start} - {end}] {text}"

        # Affichez le segment dans la console et enregistrez-le dans le fichier
        print(line)
        f.write(line + "\n")

Ce script charge localement le modèle Whisper small et l’exécute sur le CPU en utilisant la quantification int8. Il transcrit audio_output.wav en segments horodatés, détecte la langue de l’audio, et formate chaque segment avec ses heures de début et de fin. La transcription résultante est affichée dans la console et enregistrée dans video_transcript.txt.

Exécutez le script, et vous verrez une sortie similaire à la suivante :

Désormais, le modèle faster-whisper a détecté avec succès la langue de l’audio comme l’anglais et a généré une transcription précise.

Le fichier video_transcript.txt résultant contiendra la transcription horodatée :

Le fichier de transcription produit par le script basé sur l'IA locale

Et voilà ! Vous avez terminé le pipeline complet de scraping audio web en :

  1. Récupérant un enregistrement audio depuis le web.
  2. Le convertissant en un fichier WAV standardisé.
  3. Employant un modèle d’IA local pour transformer l’audio en transcription textuelle horodatée.

Scraping Audio Web : Cas d’Usage et Scénarios

Une fois que vous avez scrapé l’audio depuis le web et l’avez converti en texte, vous pouvez utiliser le résultat obtenu pour un large éventail d’applications d’IA et de traitement de données.

La combinaison d’audio, de transcriptions, et d’horodatages permet à la fois une analyse au niveau du contenu et des applications audio-texte. Voici quelques cas d’usage possibles :

  • Surveillance des médias : Suivre les podcasts, interviews, et émissions pour identifier des mentions, sujets, marques, ou événements.
  • Analyse de contenu : Analyser de grandes collections de contenu parlé pour découvrir des sujets récurrents, tendances, opinions, et thèmes clés.
  • Entraînement de modèle IA : Construire des jeux de données audio-texte pour entraîner ou affiner des modèles de reconnaissance vocale et d’autres modèles d’IA.
  • Archives consultables : Transformer de grandes collections audio en ligne en texte consultable, permettant aux utilisateurs de localiser rapidement des informations spécifiques.
  • Extraction d’informations : Extraire automatiquement des noms, organisations, lieux, faits, ou autres informations structurées depuis le contenu parlé.
  • Résumé de contenu : Générer des résumés concis de podcasts, interviews, conférences, réunions, et autres enregistrements longs.
  • Alignement audio-texte : Utiliser les horodatages pour relier les segments de transcription à leurs positions exactes dans l’audio original, permettant une récupération et une analyse précises du contenu.

Conclusion

Dans cet article, vous avez appris à scraper de l’audio sur le web et à le transformer en texte horodaté pour le traitement par IA. En détail, vous avez vu comment collecter de l’audio depuis des vidéos ou des fichiers autonomes, le convertir en WAV, et le transcrire avec des modèles d’IA basés sur le cloud ou locaux.

Le résultat est un pipeline complet de traitement audio qui peut prendre en charge des applications telles que l’analyse de contenu, l’extraction d’informations, les archives consultables, et l’entraînement de modèles IA.

Si vous souhaitez éviter l’étape de scraping, explorez les jeux de données audio prêts pour l’IA et les packages de données vidéo de Bright Data. Pour une collecte audio personnalisée, utilisez Web Unlocker de Bright Data pour accéder de manière fiable et à grande échelle aux ressources web dont vous avez besoin, sans être bloqué.

Créez un compte Bright Data et commencez à construire votre pipeline de données audio dès aujourd’hui !