Spaces:
Paused
Paused
| #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 | |
| """ | |