python文字转语音(pyttsx3+flask)

news2024/11/26 5:56:11

提示:文章结尾有全部代码

目录

  • 前言
  • 一、Flask+pyttsx基本使用
    • Flask
      • 导入Flask框架
      • 配置基础环境
      • 初始Flask代码
    • pyttsx3库基本使用
      • 导入pyttsx3
      • 初始化pyttsx3
      • 文字转语音
      • 运行
  • 二、具体实现
    • 1.引入库
  • 总结


前言

本文主要讲解如何用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__)

.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)

# 输入表单文字转语音
.route('/tts', methods=["POST"])
()
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的功能,可以自行去官方文档搜索查阅.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/629832.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python切换指南:让你无缝转换到Python

Python切换指南:让你无缝转换到Python Python是一个高级的编程语言,它可以用来进行各种各样的应用开发和数据分析。 Python有很多优点,比如它易于学习和使用,它是一个开源的语言,它具有广泛的库和框架。 如果你是处于…

Mysql数据库(六):基本的SELECT语句

基本的SELECT语句 前言一、SELECT...二、SELECT ... FROM三、列的别名四、去除重复行五、空值参与运算六、着重号七、查询常数八、显示表结构九、过滤数据 前言 本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注博主&#…

如何监控EMC VNX控制器的启动过程

这里我们要讨论的内容基本上适用于所有的EMC VNX中端存储系统,包含老的Clariion CX3,CX4,VNX1和VNX2,其实VNXe和Unity很多内容也是一样的。当然由于VNXe和Unity 操作系统的大的变化,差异也是比较大的。 导致EMC Clarr…

什么是M-LAG?为什么需要M-LAG?

M-LAG(Multichassis Link Aggregation Group)提供一种跨设备链路聚合的技术。M-LAG通过将两台接入交换机以同一个状态和用户侧设备或服务器进行跨设备的链路聚合,把链路的可靠性从单板级提升到设备级。同时,由于M-LAG设备可以单独…

如何设计一个完整的交互流程,提升产品用户体验

交互流程设计是一项关乎用户体验的重要工作。通过设计和规划用户与产品或服务的交互方式和流程,我们可以提高用户的满意度和使用效果。在本文中,我们将深入探讨交互流程设计的关键要素以及其对用户体验的重要性。 交互流程设计本质是通过设计和规划用户与…

【Python】Python进阶系列教程-- Python3 SMTP发送邮件(六)

文章目录 前言实例使用Python发送HTML格式的邮件Python 发送带附件的邮件在 HTML 文本中添加图片使用第三方 SMTP 服务发送 前言 往期回顾: Python进阶系列教程-- Python3 正则表达式(一)Python进阶系列教程-- Python3 CGI编程(…

chatgpt赋能python:Python怎么倒序输出字符串

Python怎么倒序输出字符串 Python是一种高级编程语言,它可以让开发人员快速编写代码。在Python中,字符串是一种非常常见的数据类型,其支持各种字符串操作。在这篇文章中,我们将讨论如何在Python中倒序输出字符串。 倒序输出字符…

openGauss5.0企业版使用指南之企业版安装

文章目录 0. 前言1. 安装1.1 获取安装包1.1.1 操作步骤1.1.2 准备软硬件安装环境1.1.3 软硬件环境要求1.1.4 修改操作系统配置1.1.5 **关闭操作系统防火墙**1.1.6 **设置字符集参数**1.1.7 **设置时区和时间**1.1.8 **(可选)关闭swap交换内存**1.1.9 **关…

MOVEit Transfer 漏洞似乎被广泛利用

Progress Software 已在其文件传输软件 MOVEit Transfer 中发现一个漏洞,该漏洞可能导致权限提升和潜在的未经授权访问环境,该公司在一份安全公告中表示。 在 MOVEit Transfer Web 应用程序中发现了一个 SQL 注入漏洞,可能允许未经身份验证…

【ARMv8 SIMD和浮点指令编程】NEON 逻辑指令——与或非有多少?

NEON 逻辑指令主要包括与、或、异或、位清除、或非、为 False 时按位插入、为 True 时按位插入和按位选择指令,下面我们来详细学习这些指令。 一、逻辑指令 1.1 AND 按位与(向量),该指令将两个源 SIMD&FP 寄存器按位与,并将结果写入目标 SIMD&FP 寄存器。 AND …

基于JDBC的账务管理系统

一、项目介绍 1.1 项目目标 本项目为JAVAEE基础和数据库的综合项目,包含了若干个知识点,达到将从基础班到现在所学的知识综合使用,提高了我们对项目的理解与知识点的运用。熟练View层、Service层、Dao层之间的方法相互调用操作熟练使用工具类…

chatgpt赋能python:Python怎么入侵别人微信:一种黑客行为的技术探讨

Python怎么入侵别人微信:一种黑客行为的技术探讨 随着社交媒体微信的普及和使用程度的不断提高,对微信的攻击和入侵成为了目前互联网安全领域的热点问题之一。其中,Python编程语言的广泛应用和强大的功能使得其逐渐成为了微信黑客行为的利器…

robots.txt的作用是什么,看完了我默默加在了自己网站上

文章目录 背景robots.txt的主要作用使用示范User-agentDisallowAllowSitemap 总结 背景 最近在研究网站SEO相关的东西,第一次接触到robots.txt,才发现实际上很多网站都用到了它,尤其是对搜索引擎依赖特别高的C端系统或者网站,是一…

论文解读:SuperGlue: Learning Feature Matching with Graph Neural Networks

SuperGlue: Learning Feature Matching with Graph Neural Networks 发表时间:2020 论文地址:https://arxiv.org/abs/1911.11763 项目地址:http://github.com/magicleap/SuperGluePretrainedNetwork。 本文介绍了一种通过联合寻找对应和拒绝…

Git介绍及安装

⭐作者介绍:大二本科网络工程专业在读,持续学习Java,努力输出优质文章 ⭐作者主页:逐梦苍穹 ⭐所属专栏:Git ⭐如果觉得文章写的不错,欢迎点个关注一键三连😉有写的不好的地方也欢迎指正&#x…

通往AGI之路;首个自研全开源自然语言低代码 GPT 应用快速开发框架PromptAppGPT

🦉 AI新闻 🚀 商汤科技将发布元萝卜AI下棋机器人新品(围棋版) 摘要:商汤科技将于6月14日召开元萝卜AI下棋机器人新品发布会,预计会发布下棋机器人(围棋版)。这款AI下棋机器人融合了传统围棋文化和人工智能技术,拥有落…

论文解读:Segment Anything

Segment Anything 发表时间:2023 论文地址:https://arxiv.org/abs/2304.02643 项目地址:https://github.com/facebookresearch/segment-anything 介绍了Segment Anything(SA)项目:一个新的任务、模型集和…

ViT 论文逐段精读——B站up:跟李沐学AI讲解笔记

https://www.bilibili.com/video/BV15P4y137jb Vision Transformer 挑战了 CNN 在 CV 中绝对的统治地位。Vision Transformer 得出的结论是如果在足够多的数据上做预训练,在不依赖 CNN 的基础上,直接用自然语言上的 Transformer 也能 CV 问题解决得很好…

PotPlayer结合alist播放网盘视频

目录 1. PotPlayer的下载安装2. 新建专辑3. 测试播放视频总结 欢迎关注 『发现你走远了』 博客,持续更新中 欢迎关注 『发现你走远了』 博客,持续更新中 书接上文 AList挂载工具安装搭建使用教程,快速访问多个网盘的资源(保姆级图…

12-git-pycharm配置.ignore文件

pycharm配置.ignore文件 前言安装插件使用添加其他忽略文件 前言 在开发中经常需要配置提交git的忽略文件,本篇来学习下使用pycharm自动生成.ignore文件 安装插件 Files->setting->Plugins,搜索ignore 使用 右键项目根目录,新建.…