python 图片转文字、语音转文字、文字转语音保存音频并朗读

一、python图片转文字

1、引言

pytesseract是基于Python的OCR工具, 底层使用的是Google的Tesseract-OCR 引擎,支持识别图片中的文字,支持jpeg, png, gif, bmp, tiff等图片格式

2、环境配置

  • python3.6+
  • PIL库
  • 安装Google Tesseract OCR

3、安装pytesseract

使用pip 或 pip3

pip install pytesseract==0.3.10
pip install pillow==10.4.0

4、安装Google Tesseract OCR

Tesseract是一个开源文本识别 (OCR)引擎,是目前公认最优秀、最精确的开源OCR系统,用于识别图片中的文字并将其转换为可编辑的文本

Tesseract OCR github地址:https://github.com/tesseract-ocr/tesseractWindows Tesseract下载地址:https://digi.bib.uni-mannheim.de/tesseract/Mac和Linux安装方法参考:https://tesseract-ocr.github.io/tessdoc/Installation.html

安装完成后

添加PATH环境变量,可方便的执行tesseract命令
D:\Development\Tesseract-OCR   ## 自己的安装路径
添加TESSDATA_PREFIX变量名,将语言字库文件夹添加到变量中
D:\Development\Tesseract-OCR\tessdata  ## 自己的安装路径

3、使用pytesseract转换图片

import pytesseract
from PIL import Image
from PIL import ImageEnhanceret = {'code': 100, 'msg': None, 'data': None}
class TextExtraction(APIView):# 图片转文字def get(self, request):# 加载图像image = Image.open('\media\image\\2.jpg')# 增强图片对比度enhancer = ImageEnhance.Contrast(image)img_contrast = enhancer.enhance(2.0)text = pytesseract.image_to_string(img_contrast, lang='chi_sim')print(text)ret['data'] = textreturn Response(ret)if __name__ == '__main__':te = TextExtraction()te.as_view()

二、语音转文字

使用百度语音识别Aip

1、注册登录百度AI开放平台

登录百度AI开放平台,在控制台—人工智能–语音技术
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
获得APPID、API KEY、SECRET KEY

2、安装百度Aip

pip install Baidu-Aip==4.16.13

3、使用百度Aip转语音

from aip import AipSpeechret = {'code': 100, 'msg': None, 'data': None}
class SpeechRecognition(APIView):# 语音转文字  使用百度语音识别def post(self, request):# 百度语音识别try:# 设置 APPID、API Key 和 Secret KeyAPP_ID = ''API_KEY = ''SECRET_KEY = ''# 初始化 AipSpeech 对象client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)# 设置音频文件的位置audio_file = '\media\\audio\\16k.wav'# 读取音频文件with open(audio_file, 'rb') as fp:audio_data = fp.read()# 识别音频文件res = client.asr(audio_data, 'wav', 16000, {'dev_pid': 1536,})print(res)if res['err_no'] == 0:print(res['result'][0])ret['data'] = res['result'][0]else:ret['code'] = 101ret['msg'] = res['err_msg']except Exception as e:ret['code'] = 102ret['msg'] = ereturn Response(ret)

三、speech语音播放

在python中我们可以使用speech模块让计算机进行语音输出

1、安装speech

pip install speech

2、因为speech模块最早是在python 2.x中开发的,因此在python 3.x中并不能够直接使用,我们需要打开它安装后的原始文件,并进行以下调整即可。

speech.py打开后进行定位错误位置并更改,每个人的文件位置可能有差异。因为虚拟环境的创建一般不同,Pycharm中一般是相同的,可以自行查找。接着我们按部就班地更改以下三个位置地源文件。原始文件第157行,print prompt应该改为print(prompt)。
原始文件第59行,thread应该改为_thread。
拖动文件到最后,将263行thread应该为_thread

3、语音输出

import speech
def speach():# 文字转语音speech.say("从前,有一座美丽的大森林,森林里住着许多小动物,它们每天过着无忧无虑的生活。")speech.say("Don't ask me .I have no idea why bug exist again")

四、文字转音频并保存输出

Pyttsx是一个支持Mac OS X、Windows和Linux上常见的文本到语音引擎的Python包。

1、安装pyttsx3

pip install pyttsx3

2、保存音频语音输出

import pyttsx3def pyttsx3(text, language, rate, volume, filename, sayit=0):# 参数说明: 六个重要参数,阅读的文字,语言(0-英文/1-中文),语速,音量(0-1),保存的文件名(以.mp3收尾),是否发言(0否1是)  engine = pyttsx3.init()  # 初始化语音引擎engine.setProperty('rate', rate)  # 设置语速# 速度调试结果:50戏剧化的慢,200正常,350用心听小说,500敷衍了事engine.setProperty('volume', volume)  # 设置音量voices = engine.getProperty('voices')  # 获取当前语音的详细信息if int(language) == 0:engine.setProperty('voice', voices[0].id)  # 设置第一个语音合成器 #改变索引,改变声音。0中文,1英文(只有这两个选择)elif int(language) == 1:engine.setProperty('voice', voices[1].id)if int(sayit) == 1:engine.say(text)  # pyttsx3->将结果念出来elif int(sayit) == 0:passengine.save_to_file(text, filename)  # 保存音频文件print(filename, "保存成功")engine.runAndWait()  # pyttsx3结束语句(必须加)engine.stop()  # pyttsx3结束语句(必须加)if __name__ == '__main__':text = """从前,有一座美丽的大森林,森林里住着许多小动物,它们每天过着无忧无虑的生活。有一天,森林里来了几个伐木工人,他们拿着斧头和锯子,把一棵棵树给砍倒了。几天下来,裸露的土地不断扩大,森林里的树木不断减少。大象看了之后非常生气,他和几个好朋友决定把这些伐木工人抓起来,送到动物法庭上。第二天,大象他们就把伐木工人给抓了起来,送到了动物法庭上。许多旁观者都纷纷议论起来,猴法官说:“安静,安静,大象你们把这些人抓来是怎么回事?”大象说:“这些人乱砍树木,破坏我们的家园。大象的好朋友小猴说:“对呀,他们把树给砍光了,我们就不能在树上荡秋千了。”小鸟也说:”猴法官,要是没有树木,我们就不能筑巢了。长颈鹿说:“要是没有树木,我们就吃不到树叶了,我们会饿死的。”听到这里,猴法官对伐木工人说:“你们乱砍树木是不对的,没有了树木,我们动物就无法生存,同样也会给你们人类带来灾难的。”听了这些话,伐木工人觉得很惭愧,知道自己错了,他们保证以后不再乱砍树木破坏森林了,还在森林入口立了一块告示牌,上面写着:“保护森林,人人有责。”从此以后,人们不再破坏森林,动物和人类和平相处,大家都过着幸福、快乐的生活。"""pyttsx3_debug(text=text, language=0, rate=200, volume=0.9, filename="\media\\audio\ptttsx3中文测试.mp3", sayit=1)

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

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

相关文章

mac下通过brew安装mysql的环境调试

mac安装mysql 打开终端,运行命令(必须已经装过homebrew哦): 安装brewbin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"已安装brew直接运行:brew install mysql8.0报…

洛科威岩棉板在生产生活中广泛应用,以优秀表现实现隔热性能最大化

无论是在住宅领域还是工业生产领域,隔热保温都扮演着极其重要的角色,选用的材料是否足够出色,决定了大家居家生活的舒适度,以及生产过程中能耗的高低。近些年来,洛科威岩棉优秀的隔热性能逐渐得到了各行各业的青睐&…

HomeDepot commercedesk 平台EDI自测流程

Home Depot Canada 是一家全球知名的家居建材零售公司,在加拿大拥有多家分店。它是美国的家居建材零售巨头 Home Depot 在加拿大的子公司。Home Depot 主要销售各种家庭装修和建筑材料,包括工具、家具、装饰品、电器等。公司提供广泛的产品选择和专业的顾…

机器学习(二十四):信息增益、独热编码和回归树

一、纯度测量方式——熵 第一步,定义:一个子集里,某一类别的数据在子集中的占比 例如,下图这组输入数据,根据耳朵形状划分为两个子集,尖耳朵子集里,有四只猫,1只狗。则是4/5 第二步…

NVIDIA正偷偷复活卡皇泰坦,性能秒杀5090Ti

PC 硬件圈的瓜年年有,但最近似乎格外的多噢! 首先针对 13、14 代酷睿 CPU 不稳定问题,Intel 终于做出了正式回应: 他们在对退回的 CPU 进行大量分析后得出,确认是过高的运行电压和微代码算法错误导致了不稳定情况。 …

2-48 基于matlab的EM算法聚类可视化程序

基于matlab的EM算法聚类可视化程序,通过期望最大化算法(EM)优化类别间距,使得类别间距最大、类内间距最小。输出聚类前后结果及收敛曲线。程序已调通,可直接运行。 2-48 期望最大化算法(EM) 聚类…

微信小程序教程002:代码结构介绍和新建小程序页面

文章目录 代码介绍1、小程序代码构成2、小程序页面组成部分3、JSON配置文件的作用3.1 app.json文件3.2 project.config.json文件3.3 sitemap.json文件3.4 页面的.json文件 新建小程序页面WXML和WXSS介绍1、什么是WXML2、什么是WXSS 小程序的JS文件1、JS文件2、小程序中JS文件分…

使用abpcli创建项目时提示数据库迁移失败

问题描述 使用abpcli创建项目时提示数据库迁移失败! 解决方案: 1、检查数据库连接字符串 {"ConnectionStrings": {"Default": "serverlocalhost;port3306;databaseAcmeBookStore;userroot;passwordyour_password;"} }2、…

MySQL数据库的DQL的高级数据查询语句

目录 非等值联查: 等值联查: eg:5张表联查 连接查询——left/right/inner join on eg: 连接查询——union Eg: 不去重的并集——union all 子查询(内部查询) 1、where型子查询 2、from型子查询&a…

微信小程序之用户登录

用户登录是小程序的一个常用功能,当用户在浏览文章想要收藏时,在线上购买商品时,只有用户登录自己账号以后,才可以进一步使用这些功能。此文论述了小程序用户登录功能的设计流程 一、设计思路 1、界面 小程序界面效果如下所示&…

web后端--Spring事务管理

事务也要日志配置 !!!!debug前面记得加空格 logging:level:org.springframework.jdbc.support.JdbcTransactionManager: debugrollbackFor 默认情况下,只有出现RunTimeException才会回滚事务,rollbackfor属性用于控制出现何种异常类型,回滚…

Linux shell编程笔记0

一、shell概述 shell是一个命令行解释器,它接收应用程序/用户命令,然后调用操作系统内核。 shell还是一个功能强大的编程语言,易编写、易调试、灵活性强。 二、shell脚本入门 1.进入编辑模式进入到目录下 vi 文件名称如果是system下的文件…

电子水尺的工作原理

TH-SC24电子水尺,也被称为感应式防汛水尺或水位在线监测仪,是一种专门用于监测河流水域水位变化的高科技设备。它在防汛工作中发挥着至关重要的作用,能够实时、准确地提供水位数据,为防汛决策和应急响应提供有力支持。   工作原…

连续两年入选!得帆信息强势上榜2024 Gartner ICT技术成熟度曲线

近日,国际权威咨询机构Gartner发布了《Hype Cycle for ICT in China, 2024》(2024年中国ICT技术成熟度曲线)报告。得帆信息连续两年入选低代码应用平台(LCAP)标杆供应商(Sample Vendor)。 每年&…

ABAP 无意义的FORM 规范

发现一个极为奇怪的现象,大多数ABAP程序员会在FORM名称前加前缀frm_。 请问这是规范吗,整齐好看吗,又好看在哪里呢。这是哪个师傅教的,意义是什么?而且大多数人就来个frm_get_data与frm_del_data,然后这两…

基于springboot+vue+uniapp的居民健康监测小程序

开发语言:Java框架:springbootuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包&#…

(CVPR-2024)通过多阶段框架和定制的多解码器架构提高扩散模型的训练效率

通过多阶段框架和定制的多解码器架构提高扩散模型的训练效率 Paper Title:Improving Training Efficiency of Diffusion Models via Multi-Stage Framework and Tailored Multi-Decoder Architecture Paper是密歇根大学发表在CVPR 2024的工作 Paper地址 Code地址 Abstract 扩散…

通过哨兵1号SAR数据获取桂林619洪水内涝情况

目录 1.SAR数据下载 2.SAR数据处理 1、下载轨道数据并进行轨道校正。 2、数据处理 3、转换SAR单位并创建彩色合成影像 3.查看彩色合成SAR数据 4.水体提取方法探讨 方法1:阈值提取法 方法2:深度学习提取水域 5.SAR与DEM数据获取 2024年6月19日&a…

MobaXterm 软件安装及使用

MobaXterm 软件安装及使用 1. 引言 MobaXterm是一款功能强大的终端软件,支持SSH、Telnet、RDP、VNC、FTP、SFTP、X11转发和串口等远程会话功能。它使得在Windows系统上进行Linux系统的远程管理和文件传输变得简单便捷。 2. MobaXterm 软件下载 下载链接&#xff…

蚓链数字化生态平台:构建城市智能商业,引领协同发展新潮流

​在当今数字化飞速发展的时代,城市商业的运行模式正在经历着数字化变革。蚓链数字化生态平台应运而生,以其强大的功能和创新的理念,成为构建城市智能商业枢纽中心的关键力量,推动着平台互通、业务贯通、管理协同的全新发展格局。…