| 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" |
| } |
|
|