|
import streamlit as st |
|
import subprocess |
|
|
|
def run_tts(): |
|
st.title("Matcha TTS Interface") |
|
|
|
|
|
speaking_rate = st.slider("Select Speaking Rate", min_value=0.1, max_value=2.0, value=0.8, step=0.1) |
|
|
|
|
|
text = st.text_input("Enter text for speech synthesis:") |
|
|
|
|
|
if st.button("Generate Speech"): |
|
if text: |
|
command = f"matcha-tts --speaking_rate {speaking_rate} --text \"{text}\"" |
|
|
|
result = subprocess.run(command, shell=True, text=True, capture_output=True) |
|
|
|
|
|
audio_filename = "utterance_001.wav" |
|
|
|
|
|
if result.returncode == 0: |
|
st.success("Speech generated successfully:") |
|
|
|
audio_file = open(audio_filename, 'rb') |
|
audio_bytes = audio_file.read() |
|
st.audio(audio_bytes, format='audio/wav', start_time=0) |
|
audio_file.close() |
|
else: |
|
if result.stdout: |
|
st.text(result.stdout) |
|
if result.stderr: |
|
st.error("Error in command execution:") |
|
st.text(result.stderr) |
|
else: |
|
st.error("Please enter text to synthesize.") |
|
|
|
|
|
if __name__ == "__main__": |
|
run_tts() |
|
|