Varosa's picture
create app file
7576f76
raw
history blame
No virus
1.78 kB
import io
import os
import json
import subprocess
import mmap
import numpy
import soundfile
import torchaudio
import torch
import gradio as gr
from collections import defaultdict
from pathlib import Path
from pydub import AudioSegment
from seamless_communication.inference import Translator
from seamless_communication.streaming.dataloaders.s2tt import SileroVADSilenceRemover
# Mapping of language names to their respective codes
language_codes = {
"English": "eng",
"Spanish": "spa",
"French": "fra",
"German": "deu",
"Italian": "ita",
"Chinese": "cmn"
}
# Function to handle the translation
def translate_audio(audio_file, target_language):
language_code = language_codes[target_language]
output_file = "translated_audio.wav"
command = f"expressivity_predict {audio_file} --tgt_lang {language_code} \
--model_name seamless_expressivity --vocoder_name vocoder_pretssel \
--gated-model-dir seamlessmodel --output_path {output_file}"
subprocess.run(command, shell=True)
if os.path.exists(output_file):
print(f"File created successfully: {output_file}")
else:
print(f"File not found: {output_file}")
return output_file
# Define inputs
inputs = [
gr.Audio(type = "filepath", label = "Audio_file"),
gr.Dropdown(["English", "Spanish", "French", "German", "Italian", "Chinese"], label = "Target_Language")
]
# Create Gradio interface
iface = gr.Interface(
fn=translate_audio,
inputs= inputs,
outputs=gr.Audio(label="Translated Audio"),
title="Seamless Expressive Audio Translator",
description="Translate your audio into different languages with expressive styles."
)
# Run the application
if __name__ == "__main__":
iface.launch()