S'inscrire
section-icon

Forums

Parlez de tout ce que vous voulez!

Membres

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