TTS 快速语音合成MeloTTS;自定义api服务,flask send_file发送音频文件
send_file
函数将生成的音频文件直接返回给客户端。
pip install Flask melotts
其中,melotts
是MeloTTS的Python库。
from flask import Flask, request, send_file
from melotts import Melotts
app = Flask(__name__)
melotts = Melotts() # 初始化MeloTTS实例
@app.route('/tts', methods=['POST'])
def text_to_speech():
text = request.form['text'] # 获取POST请求中的文本
audio_path = 'output.wav' # 输出音频文件的路径
melotts.tts(text, audio_path) # 调用MeloTTS合成语音
return send_file(audio_path, as_attachment=True)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
/tts
路由,使用POST方法接收文本数据。text
参数,即要合成的文本。melotts.tts
将文本转换为音频,并保存为output.wav
文件。send_file
函数将生成的音频文件作为响应返回给客户端。as_attachment=True
表示以附件形式下载。使用任何支持HTTP请求的语言或工具(如Python的requests库、curl命令)发送POST请求到该API,并在请求体中包含text
参数。
import requests
url = 'http://127.0.0.1:5000/tts'
data = {'text': '你好,世界!'}
response = requests.post(url, data=data)
# 保存音频文件
with open('received_audio.wav', 'wb') as f:
f.write(response.content)
通过以上步骤,你就可以搭建一个简单的MeloTTS自定义API服务,实现文本到语音的转换,并通过HTTP接口提供服务。你可以根据实际需求进行扩展和优化,以满足不同的场景。
更多优化建议:
希望这个回答对你有帮助!