Forums
Parlez de tout ce que vous voulez!
Oui, j’ai trouvé un modèle de deep learning permettant de détecter la langue de l’audio d’une vidéo, mais celui-ci demande énormément de ressource en RAM. (Utilisation de CUDA et de DLL)
Le modèle se nomme faster-whisper, voici le GitHub : https://github.com/SYSTRAN/faster-whisper
Par ailleurs, je viens de programmer un script.
Est-il possible de me dire si celui-ci est fonctionnel ou les éventuelles améliorations ? :
from moviepy.editor import VideoFileClip, AudioFileClip
from gtts import gTTS
from deep_translator import GoogleTranslator
import os
from typing import Tuple
def extraire_audio(video_path: str, audio_path: str) -> None:
try:
with VideoFileClip(video_path) as video:
audio = video.audio
audio.write_audiofile(audio_path)
except Exception as e:
print(f »Erreur lors de l’extraction audio : {e} »)
def transcrire_audio(audio_path: str, langue_cible: str) -> str:
# Utiliser une alternative pour la transcription dans la langue cible si nécessaire
pass
def traduire_texte(texte: str, langue_source: str, langue_destination: str) -> Tuple[str, str]:
translator = GoogleTranslator(source=langue_source, target=langue_destination)
texte_traduit = translator.translate(texte)
return texte, texte_traduit
def synthetiser_audio(texte: str, chemin_sortie: str) -> None:
try:
tts = gTTS(text=texte, lang=’fr’)
tts.save(chemin_sortie)
except Exception as e:
print(f »Erreur lors de la synthèse audio : {e} »)
def supprimer_audio(audio_path: str) -> None:
try:
os.remove(audio_path)
except Exception as e:
print(f »Erreur lors de la suppression audio : {e} »)
# Dossier de sortie (le bureau)
output_folder = os.path.join(os.path.expanduser(« ~ »), « Desktop »)
os.makedirs(output_folder, exist_ok=True)
video_path = os.path.join(output_folder, « video.mp4 »)
audio_path = os.path.join(output_folder, « audio.wav »)
extraire_audio(video_path, audio_path)
# Demander la langue source
langue_source = input(« Veuillez entrer la langue source (par exemple, ‘fr’ pour le français): « )
# Demander la langue de traduction
langue_cible = input(« Veuillez entrer la langue de traduction (par exemple, ‘en’ pour l’anglais): « )
transcription_texte = transcrire_audio(audio_path, langue_cible)
texte_source, texte_traduit = traduire_texte(transcription_texte, langue_source, langue_cible)
chemin_audio_traduit = os.path.join(output_folder, « audio_traduit.mp3 »)
synthetiser_audio(texte_traduit, chemin_audio_traduit)
# Réintégration de l’audio traduit dans la vidéo
video_audio_traduit = VideoFileClip(video_path).set_audio(AudioFileClip(chemin_audio_traduit))
# Sauvegarde de la vidéo avec traduction sur le bureau
chemin_video_traduite = os.path.join(output_folder, « video_traduite.mp4 »)
video_audio_traduit.write_videofile(chemin_video_traduite, codec=’libx264′, audio_codec=’aac’)
# Suppression de l’audio de transcription
supprimer_audio(audio_path) `