1. 项目结构&准备✨博客主页:blog.csdn.net/wangzirui32
喜欢的可以点赞收藏加关注哦~~
我的第149篇原创作品
hello,大家好,我是wangzirui32,今天我们来学习如何使用Flask实现在线文本转语音,开始学习吧!
如下图:
app.py为项目主文件,utils.py用来生成音频,audios用来保存音频,templates用来存放模板。
第三方库安装命令:
pip install flask pyttsx32. utils.py
这里使用pyttsx3生成音频,代码:
import time
import pyttsx3
engine = pyttsx3.init()
def make_audio(text, rate=100, volume=1):
id = int(time.time())
engine.setProperty("volume", volume)
engine.setProperty("rate", rate)
# 保存音频
engine.save_to_file(text, "audios/{}.mp3".format(id))
engine.runAndWait()
# 返回id
return id
3. app.py
这里使用Flask实现Web服务器:
from flask import Flask, jsonify
from flask import render_template, request, make_response
from utils import make_audio
app = Flask(__name__)
@app.route("/")
def index():
return render_template("index.html")
@app.route("/make", methods=['POST']) # 生成音频的路由 返回音频id
def make():
text = request.form.get("text")
rate = request.form.get("rate", type=int)
volume = request.form.get("volume", type=int)
try: id = make_audio(text, rate, volume)
except: return jsonify({"code": 400}), 400
return jsonify({"code": 200, "id": id}), 200
@app.route("/audio/.mp3") # 加载生成的音频 以id查找
def get_audio(id):
with open("audios/{}.mp3".format(id), "rb") as f:
audio = f.read()
response = make_response(audio)
response.content_type = "audio/mpeg"
return response
if __name__ == "__main__":
app.run(debug=True)
4. index.html
前端使用Bootstarp+jQuery实现:
Flask在线文本转语音
5. 效果展示
好了,今天的课程就到这里,我是wangzirui32,喜欢的可以点个收藏和关注,我们下次再见!



