|
import os |
|
import subprocess |
|
import gradio as gr |
|
from pathlib import Path |
|
|
|
language_codes = { |
|
"English": "eng", |
|
"Spanish": "spa", |
|
"French": "fra", |
|
"German": "deu", |
|
"Italian": "ita", |
|
"Chinese": "cmn" |
|
} |
|
|
|
def translate_audio(audio_file, target_language="German"): |
|
language_code = language_codes[target_language] |
|
output_file = "translated_audio.wav" |
|
|
|
command = ( |
|
f"expressivity_predict {audio_file} --tgt_lang {language_code} " |
|
f"--model_name seamless_expressivity --vocoder_name vocoder_pretssel " |
|
f"--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 |
|
|
|
|
|
inputs = [ |
|
gr.Audio(sources=["microphone"], type="filepath", label="User"), |
|
gr.Dropdown(["English", "Spanish", "French", "German", "Italian", "Chinese"], |
|
label="Target Language", |
|
value="German") |
|
] |
|
|
|
|
|
iface = gr.Interface( |
|
fn=translate_audio, |
|
inputs=inputs, |
|
outputs=gr.Audio(label="Translated Speech", autoplay=True,), |
|
title="Seamless Speech Translator", |
|
description="Hear how you sound in another language" |
|
) |
|
|
|
|
|
if __name__ == "__main__": |
|
iface.launch() |
|
|