Menu

文言文背诵检测程序开发

post on 10 Feb 2025 about 1996words require 7min
CC BY 4.0 (除特别声明或转载文章外)
如果这篇博客帮助到你,可以请我喝一杯咖啡~

目录

概述

今天在侄儿子要求在我这里背书的时候,有点嫌麻烦,想用程序识别和检测他的背诵,在网上查找相关软件和网站发现只有一个滑板车背诵的软件效果还不错,但是还是感觉这个产业不太成熟,于是自己用ai基于百度AI接口开发了此背诵检测程序,实现以下功能:

  • 语音转文本:实时录制背诵音频并转换为文字
  • 相似度对比:通过自然语言处理(NLP)比对背诵内容与原文
  • 准确率评分:输出整体匹配度和逐句差异分析 支持导入自定义文言文文本文件

    注意:
    需提前申请百度语音API 和百度NPL API
    目前识别效果和响应时间并不理想,需要一次性一句话一句话背诵

项目原理

本程序基于Python开发,主要利用百度AI开放平台的语音识别和自然语言处理(NLP)技术,实现文言文背诵的自动检测。以下是程序的核心技术原理:

  1. 语音转文本(语音识别)
    • 技术原理:
      • 使用百度AI的语音识别API,将用户背诵的语音实时转换为文本。
      • 语音识别通过声学模型和语言模型,将音频信号转换为文字。声学模型负责将语音信号转换为音素,语言模型则根据上下文和语法生成最可能的文本结果。
      • 本程序采用百度AI的asr接口,支持实时语音识别,能够处理流式音频数据。
    • 实现步骤:
  2. 音频采集:通过麦克风采集用户的语音,并将其转换为音频数据流。
  3. 音频预处理:对音频数据进行降噪、归一化等预处理操作,提高识别准确率。
  4. 语音识别:将预处理后的音频数据发送到百度AI语音识别API,获取识别结果。
  5. 结果处理:对识别结果进行后处理,如去除多余空格、标点符号等。
  6. 文本相似度分析(自然语言处理)
    • 技术原理:
      • 使用百度AI的自然语言处理(NLP)技术,对背诵文本和原文进行相似度分析。
      • 相似度分析通过计算两个文本的语义相似度,判断背诵内容是否与原文一致。
      • 本程序采用百度AI的simnet接口,基于深度学习模型,能够准确计算文本之间的语义相似度。
    • 实现步骤:
  7. 文本分句:将背诵文本和原文按句子分割,提取每个句子的文本内容。
  8. 相似度计算:对每个句子的背诵文本和原文进行相似度计算,获取相似度分数。
  9. 结果评估:根据相似度分数,判断背诵内容的准确性和完整性。
  10. 准确率评分
    • 技术原理:
      • 通过对比背诵文本和原文的相似度,计算整体匹配度和逐句差异分析。
      • 使用difflib库的SequenceMatcher类,计算两个文本的相似度分数。
      • 结合百度AI的语义相似度分析结果,生成最终的准确率评分。
    • 实现步骤:
  11. 逐句对比:对每个句子的背诵文本和原文进行逐句对比,计算相似度分数。
  12. 整体评分:根据逐句相似度分数,计算整体匹配度。
  13. 差异分析:生成逐句差异分析报告,显示每句话的相似度分数和差异部分。
  14. 实时反馈与进度显示
    • 技术原理:
      • 使用Tkinter库创建图形用户界面(GUI),实时显示背诵进度和识别结果。
      • 通过多线程技术,实现语音识别、文本处理和UI更新的并行处理,确保程序的实时性和流畅性。
      • 使用进度条和计时器,显示背诵进度和剩余时间,帮助用户更好地掌握背诵节奏。
    • 实现步骤:
  15. UI设计:设计背诵界面,包括原文显示、识别结果显示、进度条和计时器等。
  16. 多线程处理:创建多个线程,分别处理音频采集、语音识别、文本处理和UI更新。
  17. 实时更新:根据识别结果和相似度分析,实时更新识别结果显示和进度条。

项目结构

1
2
3
4
5
6
7
8
9
10
└── ReciteHelper/
    ├── Dockerfile
    ├── README.md
    ├── config.py
    ├── main.py
    ├── requirements.txt
    └── texts
        ├── 买油翁.txt
        ├── 孙权劝学.txt
        └── 木兰诗.txt

开始使用

安装

使用以下方法安装 ReciteHelper:

  1. 克隆 ReciteHelper 仓库:
    1
    
    git clone https://github.com/tkzzzzzz6/ReciteHelper
    
  2. 进入项目目录:
    1
    
    cd ReciteHelper
    
  3. 配置环境

推荐使用 conda 虚拟环境:

1
2
3
conda create -n beisong python=3.10 -y
conda activate beisong
pip install -r requirements.txt
  1. 配置API密钥
  • 前往百度AI控制台 创建应用
  • 获取 API Key 和 Secret Key
  • 修改 config.py 文件: ```sh #语音识别配置 APP_ID = ‘你的APP ID’ # 应用ID API_KEY = ‘你的API Key’ # API Key SECRET_KEY = ‘你的API Key’ # API Key

#百度NLP配置 NLP_APP_ID = ‘你的APP ID’ NLP_API_KEY = ‘你的API Key’ # API Key NLP_SECRET_KEY = ‘你的API Key’ # API Key

1
2
3
4
5
6
7
8
9
5. 添加背诵文本

将文言文文本保存为 txt 文件,放置于 /texts 目录下  
(程序已内置《孙权劝学》《卖油翁》《木兰诗》示例文本)

6. 运行程序
```sh
python main.py
Loading comments...