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