Spaces:
Paused
Paused
| #!/usr/bin/env python3 | |
| #coding: utf-8 | |
| # FEATURE: | |
| # Removes background noise from audio | |
| # REQUIREMENT: | |
| # That use the ELEVENLABS API | |
| from typing import Optional | |
| from typing import Union | |
| from typing import IO | |
| from typing import List | |
| from typing import Dict | |
| from typing import Any | |
| import requests | |
| import json | |
| import os | |
| import tempfile | |
| from io import BytesIO | |
| from pydub import AudioSegment | |
| from dotenv import load_dotenv | |
| from elevenlabs import ElevenLabs | |
| def isolate_audio(fichier_audio: str): | |
| load_dotenv() | |
| client = ElevenLabs(api_key=os.getenv("ELEVENLABS_API_KEY")) | |
| buffer = BytesIO() | |
| with open(fichier_audio, 'rb') as audio_file: | |
| isolated_audio_iterator = client.audio_isolation.audio_isolation(audio=audio_file) | |
| for chunk in isolated_audio_iterator: | |
| buffer.write(chunk) | |
| buffer.seek(0) | |
| return buffer | |
| #if __name__ == "__main__": | |
| # buffer = isolate_audio("audio.mp3") | |
| # with open("audio_isole.mp3", "wb") as output_file: | |
| # output_file.write(buffer.read()) | |
| def isolate_audio(audio: AudioSegment) -> AudioSegment: | |
| """ | |
| Isoler la voix dans un extrait audio. | |
| Args: | |
| audio (AudioSegment): L'audio original. | |
| Returns: | |
| AudioSegment: L'audio avec la voix isolée. | |
| """ | |
| # Implémentez ici votre algorithme d'isolation | |
| # Par exemple, utiliser un filtre passe-bande pour conserver les fréquences vocales | |
| # Ceci est un exemple simplifié | |
| # Définir les fréquences de coupure pour la voix humaine | |
| low_freq = 80 # Fréquence minimale en Hz | |
| high_freq = 3000 # Fréquence maximale en Hz | |
| # Appliquer le filtre passe-bande | |
| isolated_audio = audio.low_pass_filter(high_freq).high_pass_filter(low_freq) | |
| return isolated_audio | |