Spaces:
Runtime error
Runtime error
| import os | |
| import soundfile as sf | |
| import hashlib | |
| def ensure_dir(directory): | |
| """Ensure that a directory exists""" | |
| if not os.path.exists(directory): | |
| os.makedirs(directory) | |
| def get_audio_filename(text, language, speaker, emotion, speed, pitch, background_noise, reverberation, quality): | |
| """Generate a unique filename based on input parameters""" | |
| # Create a string containing all parameters | |
| params = f"{text}{language}{speaker}{emotion}{speed}{pitch}{background_noise}{reverberation}{quality}" | |
| # Create a hash of the parameters | |
| filename = hashlib.md5(params.encode()).hexdigest() | |
| return filename | |
| def save_audio(audio_array, filename, sampling_rate=22050): | |
| """Save audio array to a file""" | |
| ensure_dir("static/audio") | |
| filepath = f"static/audio/{filename}.wav" | |
| sf.write(filepath, audio_array, sampling_rate) | |
| return filepath | |
| def get_cached_audio(text, language, speaker, emotion, speed, pitch, background_noise, reverberation, quality): | |
| """Get cached audio if it exists""" | |
| filename = get_audio_filename(text, language, speaker, emotion, speed, pitch, background_noise, reverberation, quality) | |
| filepath = f"static/audio/{filename}.wav" | |
| if os.path.exists(filepath): | |
| return filepath | |
| return None | |