核心内容摘要
《91黑料》:信息洪流中的真相与迷雾_1
实际应用场景与痛点场景现代人点外卖频率很高尤其是上班族、学生、家庭用户。
外卖到达后骑手会在门口打电话或发短信告知取餐码但经常出现- 手里提着东西不方便看手机- 环境嘈杂听不清骑手说的取餐码- 多个订单同时到达容易混淆取餐码- 手动输入取餐码到 APP 查找订单很麻烦痛点
多单混乱同时收到多个取餐码容易记错或找不到对应订单。
手忙脚乱一手拿外卖一手翻手机还要找订单。
语音识别不准部分手机自带 TTS 语速太快或太慢影响听取。
操作复杂现有工具往往需要打开网页或 APP步骤繁琐。
核心逻辑讲解
输入取餐码- 支持手动输入或从剪贴板读取手机端可用输入框。
语音合成播报- 使用pyttsx3跨平台离线 TTS进行语音播报。
语速自定义- 用户可以调整语速单词/分钟适应不同听力习惯。
适配手机端- 使用Kivy 框架开发跨平台 GUI支持 Android/iOS打包后。
一键播报- 只有一个输入框和一个按钮操作简单。
防报错机制- 输入校验数字字母组合避免空值或非法字符。
项目结构takeaway_voice_notifier/├── main.py # Kivy 主程序入口├── voice_engine.py # 语音播报模块├── config.json # 配置语速等参数├── README.md└── USAGE.md
核心代码voice_engine.pyimport pyttsx3import jsonclass VoiceEngine:def __init__(self, config_fileconfig.json):self.engine pyttsx
init()self.load_config(config_file)def load_config(self, file):try:with open(file, r, encodingutf-
as f:cfg json.load(f)rate cfg.get(rate,
# 默认语速self.engine.setProperty(rate, rate)except FileNotFoundError:self.engine.setProperty(rate,
def speak(self, text):self.engine.say(text)self.engine.runAndWait()main.pyKivy GUIfrom kivy.app import Appfrom kivy.uix.boxlayout import BoxLayoutfrom kivy.uix.textinput import TextInputfrom kivy.uix.button import Buttonfrom kivy.uix.label import Labelfrom voice_engine import VoiceEngineclass TakeawayApp(App):def build(self):self.voice VoiceEngine()layout BoxLayout(orientationvertical, padding20, spacing
layout.add_widget(Label(text请输入取餐码, font_size
)self.code_input TextInput(multilineFalse, font_size32, size_hint_yNone, height
layout.add_widget(self.code_input)btn_layout BoxLayout(size_hint_yNone, height50, spacing
btn_speak Button(text播报取餐码)btn_speak.bind(on_pressself.on_speak)btn_layout.add_widget(btn_speak)btn_speed_up Button(text加快语速)btn_speed_up.bind(on_pressself.on_speed_up)btn_layout.add_widget(btn_speed_up)btn_speed_down Button(text减慢语速)btn_speed_down.bind(on_pressself.on_speed_down)btn_layout.add_widget(btn_speed_down)layout.add_widget(btn_layout)self.status_label Label(text, font_size
layout.add_widget(self.status_label)return layoutdef on_speak(self, instance):code self.code_input.text.strip().upper()if not code:self.status_label.text ❌ 请输入取餐码returnif not code.isalnum():self.status_label.text ❌ 取餐码应为字母和数字returntext f您的取餐码是 {code}self.voice.speak(text)self.status_label.text f✅ 已播报: {text}def on_speed_up(self, instance):self.voice.engine.setProperty(rate, self.voice.engine.getProperty(rate)
self.status_label.text f语速加快至 {self.voice.engine.getProperty(rate)}def on_speed_down(self, instance):self.voice.engine.setProperty(rate, max(80, self.voice.engine.getProperty(rate) -
)self.status_label.text f语速减慢至 {self.voice.engine.getProperty(rate)}if __name__ __main__:TakeawayApp().run()
README.md# 外卖取餐码语音播报工具一个极简的跨平台工具输入取餐码即可语音播报支持自定义语速解决多单混乱、手忙脚乱的问题。
## 功能- 输入取餐码一键语音播报- 支持语速调整- 跨平台Windows/macOS/Linux/Android/iOS- 无复杂操作适配手机端## 安装bashpip install kivy pyttsx3## 运行bashpython main.py
USAGE.md# 使用说明
打开程序在输入框输入取餐码如 A123。
点击“播报取餐码”即可听到语音。
可点击“加快语速”或“减慢语速”调整。
支持手机端运行需打包 APK。
核心知识点卡片知识点 说明Kivy 跨平台 GUI 一套代码运行在手机和电脑pyttsx3 离线 TTS 不依赖网络语音稳定JSON 配置 存储语速等参数输入校验 防止非法字符导致播报错误事件绑定 按钮点击触发语音和语速调整移动端适配 大字体、少按钮适合手机操作
8.
总结这个工具解决了多单混乱、手忙脚乱、语音识别不准、操作复杂四大痛点通过极简 UI 离线 TTS 语速可调让用户在任何环境下都能快速、准确地获取取餐码。
它非常适合- 外卖高频用户- 老年人或视力不佳者- 需要双手操作其他事情的场景如果你需要可以在下一步- 打包成 Android APK用 Buildozer- 增加 剪贴板自动读取 功能- 增加 多语言播报中英文切换利用AI解决实际问题如果你觉得这个工具好用欢迎关注长安牧笛