| from bark import generate_audio, preload_models | |
| import torch | |
| import numpy as np | |
| import scipy | |
| import io | |
| import base64 | |
| class EndpointHandler: | |
| def __init__(self, path=""): | |
| preload_models() | |
| def __call__(self, data): | |
| text = data.get("inputs", "") | |
| if not text.strip(): | |
| return {"error": "No input text provided."} | |
| audio_array = generate_audio(text, history_prompt="v2/ru_speaker_0") | |
| byte_io = io.BytesIO() | |
| scipy.io.wavfile.write(byte_io, rate=24000, data=audio_array) | |
| byte_io.seek(0) | |
| audio_base64 = base64.b64encode(byte_io.read()).decode("utf-8") | |
| return { | |
| "audio_base64": audio_base64, | |
| "content_type": "audio/wav" | |
| } | |