- 实际应用场景描述
场景:
你经常在通勤、散步或会议间隙产生灵感(比如新项目想法、技术优化点、待办任务)。传统做法是记在手机备忘录或纸质本上,但容易遗漏、分类混乱、检索困难。
痛点:
- 手动输入效率低
- 分类依赖人工判断
- 检索不方便
- 容易忘记灵感
解决方案:
开发一个 语音灵感管理工具,通过语音识别将灵感转为文本,利用关键词自动分类,并支持快速检索,所有灵感存储在本地数据库,随时可查。
-
核心逻辑讲解
-
语音采集 → 使用 "speech_recognition" 库调用麦克风录音并转成文本。
-
文本预处理 → 去除多余空格、标点,统一小写。
-
分类规则 → 预设关键词映射:
- 包含 "项目"、"开发"、"上线" → 项目
- 包含 "创意"、"想法"、"点子" → 创意
- 包含 "待办"、"任务"、"记得" → 待办
-
存储 → 使用 SQLite 存储灵感内容、分类、时间戳。
-
检索 → 支持按关键词搜索标题和内容。
-
CLI 交互 → 命令行界面方便快速操作。
-
代码模块化实现
目录结构
inspiration_manager/ ├── main.py ├── speech_input.py ├── classifier.py ├── storage.py ├── search.py └── README.md
"storage.py" - 数据库操作
import sqlite3 from datetime import datetime
DB_NAME = "inspirations.db"
def init_db(): conn = sqlite3.connect(DB_NAME) c = conn.cursor() c.execute('''CREATE TABLE IF NOT EXISTS inspirations (id INTEGER PRIMARY KEY AUTOINCREMENT, content TEXT, category TEXT, timestamp TEXT)''') conn.commit() conn.close()
def save_inspiration(content, category): conn = sqlite3.connect(DB_NAME) c = conn.cursor() c.execute("INSERT INTO inspirations (content, category, timestamp) VALUES (?, ?, ?)", (content, category, datetime.now().strftime("%Y-%m-%d %H:%M:%S"))) conn.commit() conn.close()
def search_inspirations(keyword): conn = sqlite3.connect(DB_NAME) c = conn.cursor() c.execute("SELECT * FROM inspirations WHERE content LIKE ? OR category LIKE ?", (f"%{keyword}%", f"%{keyword}%")) results = c.fetchall() conn.close() return results
"speech_input.py" - 语音识别
import speech_recognition as sr
def record_and_transcribe(): recognizer = sr.Recognizer() with sr.Microphone() as source: print("请说出你的灵感...") audio = recognizer.listen(source) try: text = recognizer.recognize_google(audio, language="zh-CN") print(f"识别结果: {text}") return text except sr.UnknownValueError: print("无法识别语音") return "" except sr.RequestError: print("语音服务不可用") return ""
"classifier.py" - 分类器
def classify_inspiration(text): text_lower = text.lower() if any(kw in text_lower for kw in ["项目", "开发", "上线"]): return "项目" elif any(kw in text_lower for kw in ["创意", "想法", "点子"]): return "创意" elif any(kw in text_lower for kw in ["待办", "任务", "记得"]): return "待办" else: return "未分类"
"search.py" - 搜索功能
from storage import search_inspirations
def display_results(results): if not results: print("未找到相关灵感") return for row in results: print(f"[{row[2]}] {row[1]} (时间: {row[3]})")
"main.py" - 主程序
from speech_input import record_and_transcribe from classifier import classify_inspiration from storage import save_inspiration, init_db from search import display_results
def main(): init_db() while True: print("\n1. 录入灵感\n2. 搜索灵感\n3. 退出") choice = input("选择操作: ") if choice == "1": text = record_and_transcribe() if text: category = classify_inspiration(text) save_inspiration(text, category) print(f"已保存为【{category}】类灵感") elif choice == "2": keyword = input("输入搜索关键词: ") results = search_inspirations(keyword) display_results(results) elif choice == "3": break else: print("无效选择")
if name == "main": main()
- README.md
灵感管理器 Inspiration Manager
一个基于 Python 的语音灵感管理工具,支持语音录入、自动分类、关键词检索。
功能
- 语音录入灵感
- 自动分类(项目/创意/待办)
- 关键词搜索
- SQLite 本地存储
安装依赖
bash
pip install SpeechRecognition pyaudio
使用
bash
python main.py
目录结构
见上方代码目录说明。
-
使用说明
-
安装依赖: "SpeechRecognition" 和 "pyaudio"(Windows 可能需要安装 Visual Studio Build Tools)。
-
运行 "main.py"。
-
选择 "1" 录入灵感,对着麦克风说话。
-
选择 "2" 搜索灵感,输入关键词即可。
-
数据保存在 "inspirations.db" 中,可随时查看。
-
核心知识点卡片
知识点 说明
"speech_recognition" Google 语音识别 API 封装,支持多语言 SQLite 轻量级嵌入式数据库,适合本地存储 字符串处理 "lower()"、 "in" 用于分类匹配 模块化设计 将功能拆分为独立模块,便于维护 CLI 交互 "input()" 和 "print()" 实现简单命令行界面
- 总结
本项目结合了 语音识别、自然语言处理(简单规则)、数据库存储 和 CLI 交互,解决灵感记录与管理的痛点。
后续可扩展方向:
- 接入 NLP 模型做更智能的分类
- 增加 Web 界面(Flask/Django)
- 支持导出 Markdown/PDF
- 云同步(如 Firebase)
,还可以生成一个 可执行的可视化桌面版(PyQt/Tkinter),让语音录入更直观。
利用AI高效解决实际问题,如果你觉得这个工具好用,欢迎关注我!