栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python:Flask+pyttsx3实现在线文本转语音

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python:Flask+pyttsx3实现在线文本转语音

✨博客主页:blog.csdn.net/wangzirui32
 喜欢的可以点赞收藏加关注哦~~
 我的第149篇原创作品


 hello,大家好,我是wangzirui32,今天我们来学习如何使用Flask实现在线文本转语音,开始学习吧!

1. 项目结构&准备

如下图:

app.py为项目主文件,utils.py用来生成音频,audios用来保存音频,templates用来存放模板。
第三方库安装命令:

pip install flask pyttsx3
2. 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在线文本转语音
    
    


    

Flask在线文本转语音

语速
音量


预览

下载

5. 效果展示


 好了,今天的课程就到这里,我是wangzirui32,喜欢的可以点个收藏和关注,我们下次再见!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/883577.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号