桔子菌和楼下超市田大爷的角色互换经历–Python做的商品价格语音播报器
原文链接:http://www.juzicode.com/archives/4635
周末在楼下超市买菜的时候,结完账超市老板田大爷把桔子菌拉到一边神秘兮兮地说:听说你是写程序的?
桔子菌茫然地点点头:是的,写过一点的。
田大爷朝隔壁竞争对手望了望,压低声音跟桔子菌说:听到没,我也想搞一个那样的软件给我播报菜价,但是打听了下,100块只能用3个月。
桔子菌听着隔壁超市传来明显的”机器”腔调声,那是超市惯用的语言播报软件发出来的,只是不知道这种软件的使用还有这么个讲究。
田大爷继续说了:你是写程序的,能不能帮忙找一个这样的免费软件。电脑和音箱我这里已经有了,不用你操心。
哦,对了,这种软件的使用越简单越好。田大爷赶紧补充了一条需求。
看来在别人眼里程序猿的刻板印象还是相当刻骨铭心的,只要是和电脑相关的工作都是程序猿能干的,上次桔子菌确实也给田大爷修过电脑的,不过这次找软件好像和写代码有点接近些了。
桔子菌看了看超市里那个人工录音的大喇叭,还没有开口。
田大爷摆出很嫌弃的样子:这不好用啊,几十个菜价只要有一个发生了变化,又要把所有的菜价全部重新录一遍。田大爷是摇着头说完的。
看着田大爷殷切的眼神,桔子菌不忍心残忍拒绝,但是也不确定能不能找到这种软件,只是答应了田大爷试试看。
没想到平时桔子菌在田大爷这里做了这么多次甲方,今天田大爷成了桔子菌的“甲方”。
回到家桔子菌吃完午饭就来到了电脑前,开始给田大爷物色免费软件。
桔子菌首先搜到的是下面这种,在网页上写一段文字,对方把语音文件录好发回来,但是价格也不菲,而且和大爷说的需求也不符,菜价发生变化又得重新交钱,重新录制。
桔子菌又跑到软件分享网站上找到几个离线版的,表面说免费使用,实际上仍然是要收费的:
而且看着操作起来似乎也不简单:
田大爷的需求很明确:免费、简单、适应价格变化,可是桔子菌在网上找了个把小时愣是没有物色到符合需求的软件。就在将要放弃之际桔子菌心想既然找不到现成的,为何不自己做一个呢?
桔子菌快速做了评估,自己做的话其他都好说,难点是怎么将文字转换为语音这部分。我们知道Windows系统从XP开始就有“文字转语音TTS”的功能,到了win7和win10系统就演变成了“讲述人”:
Windows自带的这些功能,一般也会提供类似的编程接口。这个时候桔子菌首先想到的当然是怎么用Python做了,一种方式是写VBS脚本交给Python调用,另外还可以通过win32com模块加载文字转语音组件,后者更原汁原味,就选win32com了。
先写个简单的脚本测试下:
import win32com.client
speaker = win32com.client.Dispatch("SAPI.SpVoice")
speaker.Speak("桔子 3块钱一斤")
运行之后听了下,效果还可以,也是原汁原味的“机器”声音。
接下来就是怎么具体实现了,为了快速部署“上线”,桔子菌并不打算做复杂的操作界面,如果要修改价格、增加菜品,直接在excel里面修改。
但是想到要修改excel表格,桔子菌担心田大爷不会操作。问过田大爷后,来了个大反转,这次轮到桔子菌对田大爷有刻板印象了,他表示修改excel完全没有问题,啧啧啧。
有了前面的“顶层设计“,接下里就是实现”底层逻辑“了。用Tk做界面,一个开始按钮,一个停止按钮,加一个显示状态的文本框。因为要循环播报,不能在Tk的按钮事件里面加无限循环,所以需要开个线程。按钮只改变一个标志位即可,线程里面每次轮询这个标志位决定开始播报还是停止播报。价格手动在excel里修改,用Python的xlrd模块读出数据。最后就是用pyinstaller打包程序。
表格结构是这样的,三列,如果单位不填写默认解析为斤:
做出来的效果就是这样的:
最后当然就是部署“生产环境”了,程序发布给田大爷使用。
田大爷反馈这个软件用起来确实容易上手,现在终于可以和隔壁对手一起同台竞技飚菜价了。
哦,对了,田大爷表示下次有机还会再找桔子菌修电脑、找软件。
扩展内容:
- Python进阶教程m13–打包工具pyinstaller
- Python进阶教程m10–多线程
- Python进阶教程m8–图形界面–tkinter
- Python进阶教程m2d–xlrd读excel
桔子菌和楼下超市田大爷的角色互换经历–Python做的商品价格语音播报器相关推荐
- 【初学python】用python做一个简单的超市收银台付款系统
price=float(input("请输入商品单价:")) if(price<0):print("输入不合法!") amount=int(input(& ...
- pytesseract提取识别图片中的文字
目录 1.获取tesseract版本号 2.获取语言包列表 3.识别图片中的文字 4.获取图片中文字的详细信息 5.识别图片中的文字和位置 6.识别osd信息 7.识别并生成xml文件 避坑指南: p ...
- 有了这个方法群聊斗图你就不会输了(Python imageio制作gif动图)
原文链接:http://www.juzicode.com/python-funny-imageio-make-gif 先说需要用到的3个模块,imageio用来读写图像文件.imageio-ffmpe ...
- 又发现一条喵星人将要统治地球的新线索(OpenCV猫脸检测)
都说喵星人快要统治地球了,各种证据正在被发现-- OpenCV的开发人员似乎也发现了些什么,在其发布版本里悄悄留下了些线索: 在OpenCV-Python安装包目录的data文件夹下,有2个" ...
- OpenCV-Python教程:直方图及其绘制(calcHist)
原文链接:http://www.juzicode.com/opencv-python-histogram-calchist-draw-hist 返回Opencv-Python教程 图像的直方图反映的是 ...
- 中秋节月饼不知道买哪种?Python爬取4000种月饼类别告诉你答案!
前言 马上临近中秋了,月饼的销量持续增长,也推出了各个不同口味类别的月饼,价格差异也较大.我们究竟应该买哪种月饼呢?今天就一起用Python爬取某宝月饼信息,并对爬取的数据进行可视化分析,一起来看看哪 ...
- nopi 缩小字体填充_我在超市里改字体
-今天,2020年第一天,送篇字体教程给大家,让大家在学习中拥抱这新的一年,嗯,我们就是这么贴心呢! 这次主题是<我在超市改字体>,前段时间,我带工作室小伙伴们去楼下超市拍了一些产品包装上 ...
- 对话王田苗:亚马逊谷歌入局 服务机器人何时爆发?
▼ 点击上方蓝字 关注网易智能 为你解读AI领域大公司大事件,新观点新应用 编者按:在近日于深圳举办的2018 CCF-GAIR 全球人工智能与机器人峰会上,北京航空航天大学机器人研究所名誉所长.IE ...
- 99岁田家炳博士辞世!捐助300多所学校…
90余所大学, 160 余所中学, 40 余所小学, 10所专业学校及幼稚园 -- 都受过他的捐赠. 不是捐钱最多, 但是把自己总资产的 80% 都用于慈善事业的, 在中国只有一个人, 他就是田家炳. ...
最新文章
- .sh是什么语言_shell的重生历史:从sh到bash
- springboot配置spring.profiles.active多环境支持
- 《Sibelius 脚本程序设计》连载(十四) - 2.1 注释、语句、语句块
- C#刷遍Leetcode面试题系列连载(1) - 入门与工具简介
- java 当前类_Java获取当前类名的两种方法
- New to My Oracle Support?
- 下载android平台源码
- 数据结构上机实践第14周项目3 - 是否二叉排序树
- 2021文科跨考计算机经验贴(个人分享用,科目408)
- 基于赫优讯netX芯片PROFINET IO设备的开发
- 西门子S7系列PLC与触摸屏模拟仿真(无需实物)
- MetaLife与ESTV建立战略合作伙伴关系并任命其首席执行官Eric Yoon为顾问
- 64位计算机安装32位,告诉你64位电脑怎么装32位系统
- 视频后期剪辑,怎样在视频画面上添加滚动字幕
- 图的应用:骑士周游问题
- AC/DC电源模块输入电压范围
- 数字转换为中文大写(钱数)
- 2021-11-12号-java面试题-北京
- Ping计算机名和Ping网站域名都是由DNS解析吗?
- 电容笔做的比较好的品牌有哪些?便宜好用的电容笔推荐
热门文章
- AirServer2022苹果安卓手机屏幕如何投影到电脑上面
- 【C++面向对象程序设计——侯捷大师】心得摘要
- 感恩节和感恩节的由来!
- idea打开后不显示界面,win+D快捷键解决问题
- 如何在安卓上android studio上构建本地服务器
- 高德地图两个多边形区域检测重叠解决方案
- 罗永浩 AR 创业公司估值 10 亿;​苹果宣布加大 AppStore 广告推送量;​Node.js 19 发布|极客头条...
- Nvidia Xavier平台CAN收发控制器调试记录
- Linux系统调用详解(实现机制分析)--linux内核剖析(六)
- 全国计算机等级一级b真题,2011年3月全国计算机等级考试一级B真题及参考答案.doc...