demorrha / core /speech_to_text.py
rick
changements mineurs
d454bb9 unverified
raw
history blame
2.52 kB
#coding: utf-8
# Importation des bibliothèques nécessaires selon les bonnes pratiques PEP8
import requests # Pour envoyer des requêtes HTTP à l'API
import json # Pour traiter les réponses JSON de l'API
from os import getenv
def huggingface_endpoints_stt(fichier_audio: str) -> str:
# Définir l'URL de l'endpoint d'inférence sur Hugging Face
API_URL = f"{getenv("hf_endpoint_whisper_large_v3_turbo")}"
# Inclure votre token d'accès Hugging Face dans les en-têtes de la requête
headers = {
"Authorization": f"Bearer {getenv('HF_API_TOKEN')}"
}
"""
Envoie un fichier audio au modèle Whisper et renvoie la transcription textuelle.
Arguments:
fichier_audio (str): Chemin vers le fichier audio à envoyer pour la transcription.
Retour:
str: Texte transcrit à partir de l'audio.
"""
# Ajouter le type de contenu audio à l'en-tête de la requête
headers["Content-Type"] = f"audio/{fichier_audio.split('.')[-1]}"
# Ouvrir le fichier audio en mode binaire
with open(fichier_audio, "rb") as audio:
# Envoyer une requête POST à l'API avec le fichier audio
response = requests.post(API_URL, headers=headers, data=audio)
# Vérifier si la requête a réussi (code 200)
if response.status_code == 200:
# Extraire la transcription du texte de la réponse JSON
transcription = json.loads(response.content.decode("utf-8"))
return transcription.get("text", "Pas de transcription disponible.")
else:
# En cas d'erreur, afficher le code de statut et le message
raise Exception(f"Erreur API: {response.status_code}, {response.text}")
# Exemple d'utilisation de la fonction
if __name__ == "__main__":
fichier_audio = "sample_1.wav" # Remplacez par votre fichier audio
try:
transcription = huggingface_endpoints_stt(fichier_audio)
print(f"Transcription : {transcription}")
except Exception as e:
print(f"Une erreur est survenue : {e}")
"""
Supported content types are:\n application/json, application/json; charset=UTF-8, text/csv, text/plain, image/png, image/jpeg, image/jpg, image/tiff, image/bmp, image/gif, image/webp, image/x-image, audio/x-flac, audio/flac, audio/mpeg, audio/x-mpeg-3, audio/wave, audio/wav, audio/x-wav, audio/ogg, audio/x-audio, audio/webm, audio/webm;codecs=opus, audio/AMR, audio/amr, audio/AMR-WB, audio/AMR-WB+, audio/m4a, audio/x-m4a\n
"""