#!/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