File size: 1,106 Bytes
5d23dfb |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
import torch
from transformers import pipeline # 或模型特定库,如 cosyvoice
from cosyvoice.cli.cosyvoice import CosyVoice # CosyVoice 示例,换成你的模型
class EndpointHandler:
def __init__(self, model):
self.model = CosyVoice('path/to/model') # 加载模型
self.device = 'cuda' if torch.cuda.is_available() else 'cpu'
self.model.to(self.device)
def __call__(self, data):
inputs = data.get('inputs', 'Default text')
parameters = data.get('parameters', {})
language = parameters.get('language', 'en')
duration = parameters.get('duration', 30)
# 生成唱歌音频
audio = self.model.generate(inputs, language=language, singing_mode=True) # 唱歌参数
# 返回 base64 WAV
import io
import base64
buffer = io.BytesIO()
torch.save(audio, buffer)
audio_b64 = base64.b64encode(buffer.getvalue()).decode()
return {'audio': audio_b64}
# 入口
def query_endpoint(payload):
handler = EndpointHandler(None) # 初始化
return handler(payload) |