python文字转语音(pyttsx3+flask)

简介: 本文主要讲解如何用python的pyttsx3库+flask框架,手写一个文字转语音api

前言


本文主要讲解如何用python的pyttsx3库+flask框架,手写一个文字转语音api


准备工作


编译器:vscode


pip下载:pyttsx3、flask(跨域再下载一个flask_cors)





一、Flask+pyttsx基本使用


Flask


Flask是python的一个轻量级框架,适用于小微项目的创作,在下载完Flask框架后,先配置它的主路径

在终端中输入以下命令:


$env:Flask_APP="你的主函数py文件本地路径"


导入Flask框架

from flask import Flask,request


在上述代码中,导入Flask框架和request请求。


配置基础环境

app=Flask(__name__)
中间写路由api
if __name__ == '__main__':
    app.run(debug=False, host='0.0.0.0', port=5000)


在最后一行代码中,我们关闭了debug模式,并且host设置成0.0.0.0能实现所有ip地址都能调用该接口,如果不想也可以在终端输入ipconfig/all,查看自己的ip地址并放上去,port是端口号,没被占用的情况下可以随意修改。


初始Flask代码

from flask import Flask
app=Flask(__name__)
@app.route('/')
def test():
    return "hello"
if __name__ == '__main__':
    app.run(debug=False, host='0.0.0.0', port=5000)


@app.route是路由,里面写的是具体接口名,def是函数关键词,在这个接口中,我们只做了返回hello字符串的操作。


pyttsx3库基本使用


导入pyttsx3

import pyttsx3



初始化pyttsx3

e=pyttsx3.init()



e是别名,能调用初始化后的这个库里的函数,如say,runAndWait等等。


文字转语音

e.say('世界真大,我想去看看')


say主要作用就是说,把里面的文字转成语音


运行

e.runAndWait()


runAndWait主要作用就是运行这个库中调用的函数,如say。

import pyttsx3
e=pyttsx3.init()
e.say('123')
e.runAndWait()


二、具体实现


1.引入库

from flask import Flask, request
import pyttsx3
from flask_cors import CORS, cross_origin
app = Flask(__name__)
CORS(app)
# 输入表单文字转语音
@app.route('/tts', methods=["POST"])
@cross_origin()
def text_audio():
    engine = pyttsx3.init()
    # 获取请求的text表单数据
    text = request.form.get('text')
    # 如果存在转语音并运行pyttsx3
    if text:
        engine.say(text)
        engine.runAndWait()
        return "Text Success"
    else:
        # 不存在返回Text is empty
        return "Text is empty"
# 主函数,host任何IP地址都可以运行,debug模式关闭
if __name__ == '__main__':
    app.run(debug=False, host='0.0.0.0', port=5000)



在上述代码中,关键点在于用request方法的表单实现参数,这一点需要在header头是表单类型,也就是

Content-Type:application/x-www-form-urlencoded


在postman的body中找到application/x-www-form-urlencoded,key是text,value就可以输入你想要转语音的文字了.

其次就是跨域的应用,需要下载flask_cors,并配置对应的CORS(app),在你想要跨域的接口前输入@cross_origin()

就可以实现跨域的操作了.






总结


这是比较简单的实现文字转语音的方法,实现效果也是机器声音较重,如果想要模拟人声也可以采用机器学习的方式,用tacotron2模型进行训练,开源代码在github中可以看到.


同时pyttsx也能实现读取文本文件,将文本文件转换成mp3的功能,可以自行去官方文档搜索查阅.



相关文章
|
2月前
|
开发框架 开发者 Python
深入探究Python Web开发框架:Flask与Django
Python作为一种广泛应用于Web开发的编程语言,其拥有众多优秀的Web开发框架。本文将深入探讨其中两大知名框架——Flask与Django。通过对它们的概念与实践进行比较分析,帮助读者更好地理解和选择适合自己项目需求的Web开发框架。
|
2月前
|
API 数据库 开发者
Python微服务框架:Flask与FastAPI的融合创新
在当今高度互联的世界中,构建可扩展、灵活和高效的微服务架构变得至关重要。Python作为一种广泛应用于Web开发的编程语言,其微服务框架Flask和FastAPI的概念与实践日益受到关注。本文将介绍这两个框架的核心概念,并探讨它们在实际应用中的强大功能和优势。
|
2月前
|
人工智能 前端开发 JavaScript
基于Python+Flask+Echart实现二手车数据分析展示
基于Python+Flask+Echart实现二手车数据分析展示
|
2月前
|
前端开发 数据库 Python
使用 Python 的 Web 框架(如 Django 或 Flask)来建立后端接口,用于处理用户的请求,从数据库中查找答案并返回给前端界面
【1月更文挑战第13天】使用 Python 的 Web 框架(如 Django 或 Flask)来建立后端接口,用于处理用户的请求,从数据库中查找答案并返回给前端界面
48 7
|
2天前
|
人工智能 前端开发 算法
Python 潮流周刊#18:Flask、Streamlit、Polars 的学习教程
Python 潮流周刊#18:Flask、Streamlit、Polars 的学习教程
9 4
|
9天前
|
数据库 开发者 Python
Python在Web开发中的应用:Flask与Django框架介绍与实践
Python在Web开发中的应用:Flask与Django框架介绍与实践
|
9天前
|
开发框架 缓存 数据库
Python中的Web开发:Flask与Django的比较与选择
Python中的Web开发:Flask与Django的比较与选择
|
27天前
|
前端开发 API 数据库
深入浅出:使用Python和Flask构建RESTful API
在当今的软件开发领域,RESTful API成为了连接前端与后端,以及不同系统之间通信的桥梁。Python因其简洁语法和强大的库支持,特别是Flask框架的轻量级和灵活性,成为开发RESTful API的首选之一。本文旨在为初学者提供一个清晰、简洁的指南,通过一个实际的例子,演示如何使用Python和Flask快速构建一个RESTful API。我们将从API的设计开始,逐步深入到实现细节,包括路由设置、请求处理、数据验证、以及与数据库的交互。无论你是前端开发者希望更好地理解后端服务的工作原理,还是后端开发者想要掌握快速构建API的技巧,本文都将为你提供有价值的见解。
|
2月前
|
Java 数据库 Python
python flask 简单示例
python flask 简单示例
16 2
|
2月前
|
数据采集 开发框架 数据挖掘
基于Python+Flask框架开发实现二手车数据爬取及分析
基于Python+Flask框架开发实现二手车数据爬取及分析

热门文章

最新文章

相关产品

  • 云迁移中心