python文本转音频问题--以及flask实现的网页

问题描述:

pyttsx3,python的一个文本转语言非常好的库
但是最近安装的时候总是报一些奇奇怪怪的问题!
解决办法很简单
先这样,然后就好了

pip install -U setuptools
pip install pyttsx3
        

总有一些博客喜欢说要安装pywin32的其实pip install pytts3就会直接安装pywin32,如果你没有那你就还是pip一下吧!


关于pyttx3的运用:

可以考虑我这篇博文
考研的福音,文本转音频,支持docx,txt文件


我的特殊用处:

最近有做那个每日英语句子的版块
每天一个英文句子,大伙学起来!!!

在这里插入图片描述
随着我不断更新:现在第一板块:跟AI聊天;第三版块:查看照片地址信息外;第二板块新增句子音频。采用的就是pyttx3将文本转音频的技术

句子音频模块

import os
import pyttsx3
import re
import json
#保存音频文件
def savetheaudio(strx,time):
    engine = pyttsx3.init()
    # 设置新的语音速率
    engine.setProperty('rate', 170)
    rate = engine.getProperty('rate')
    #engine.say(strx)
    engine.save_to_file(strx,time+'.mp3')
    engine.runAndWait()
    print("文件目录:"+time+'.mp3')
    #获取文件路径,后缀
if __name__ == '__main__':
    with open('./data/englishJson.json','r',encoding="UTF-8")as file:
        englishsentense = json.loads(file.read())
    for english in englishsentense:
        path = 'C:/wwwroot/192.168.1.104/english/'+english["Time"]
        sentence = english["Sentence"]
        savetheaudio(sentence,path)

在这里插入图片描述
文本采用json串存储,不仅可以读取到页面显示,也能直接用于文本转音频,存储为对应的日期.mp3文件,这样就可以用于后台变化对应的日期与文本音频
另外整个所有页面的后台逻辑上都是采用flask python模块实现,非常的方便—推荐推荐
特别是开头的日历模块也是用python 的calendar模块做的非常的人性化

日历小模块

def get_calendar(year,month):
    year = int(year)
    month = int(month)
    num_zero = calendar.monthrange(year,month)[0]+1
    d = calendar.monthrange(year,month)[1]
    zero = np.zeros(num_zero).astype('int32')
    days =np.arange(1,d+1)
    beforelist = np.hstack((zero,days))
    num_zero1 = 42-len(beforelist)
    if num_zero1!=0:
        zero1 = np.zeros(num_zero1).astype('int32')
        endlist = np.hstack((beforelist,zero1))
        endlist = endlist.reshape(6,7)
    else:
        endlist = beforelist.reshape(6,7)
    return endlist

照片信息显示模块

因为用python获取照片地址的代码网上到处都有,我也不是原创就不沾在这里了:说明我的网站并没有保持你上传的照片,只是读取了信息最后都会删除

def photos_address():
    if request.method == 'POST':
        f = request.files.get('photo')
        if f.filename == '':
            flash('No selected file')
            print('No selected file')
            return redirect('inxex')
        if f and allowed_file(f.filename):
            print(allowed_file(f.filename))
            path = './'+"gps"+secure_filename(f.filename)
            f.save(path)
            try:
                photo_time,photo_address =huzhiwen.show_img_address(path)
            except Exception as e:
                return redirect(url_for('index',photo_time="照片格式错误",photo_address="照片格式错误"))
            os.remove(path)
            return redirect(url_for('index',photo_time=photo_time,photo_address=photo_address))

如上os.remove(path)即移除了该照片

AI模块

采用全网已知的青云客AI网上也很好搜到就不再这里粘贴了

总结

最终实现只有不到100行需要管理的代码
在这里插入图片描述

主要是我挺多函数都封装在了自己的模块
我的模块封装了近20个函数吧!不过本网页只用到了6个
在这里插入图片描述
也就不到120行,除去引入的包,也就100行代码
因为我前端代码不熟练,前端代码有200多行,不过个人觉得总体效果还是不错的!!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阁下莫非东西

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值