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 | |