基于短时能量与过零率的语音端点检测系统
项目介绍
本项目是一个基于短时能量与过零率分析的语音端点检测(Voice Activity Detection, VAD)系统。其核心目标是从连续的音频信号(如录音文件或实时音频流)中自动、准确地定位出有效语音段的起始点与结束点,并将语音片段与非语音段(如静音、背景噪声)进行分割。该系统适用于语音识别系统的预处理阶段、语音活动检测、会议录音分割、音频素材整理等多种场景,能够有效提升后续语音处理流程的自动化程度与效率。
功能特性
- 双特征分析:结合短时能量(反映语音幅度的强弱)与过零率(反映信号频率的高低)两种时域特征,综合判断语音段,提高检测鲁棒性。
- 动态阈值自适应:系统能够根据输入音频的背景噪声水平自动调整检测阈值,适应不同的录音环境与噪声条件,降低误检和漏检。
- 多格式输入支持:支持处理预录制的单声道音频文件(如.wav, .mp3等),也支持通过麦克风进行实时音频流采集与处理。
- 复杂场景适应:能够处理包含长静音段、稳定背景噪声以及多人语音混合的复杂音频场景。
- 丰富输出结果:
* 分割后的独立语音片段音频文件(.wav格式)。
* 可视化的检测结果图,清晰标注语音起止点及特征曲线。
* 详细的端点时间戳列表(开始时间、结束时间、持续时间)。
* 可选的实时分割信号流,满足连续处理需求。
使用方法
- 准备环境:确保满足下文“系统要求”中的软硬件条件。
- 运行系统:启动主程序文件。程序运行后,将提供交互式选项。
- 选择输入源:
*
文件处理模式:根据提示输入待分析音频文件的完整路径。
*
实时处理模式:选择实时采集,系统将开始通过默认麦克风录制音频。
- 获取结果:处理完成后,系统将在指定输出目录生成:
*
segmented_utterances/ 文件夹:包含所有分割出的语音片段。
*
VAD_result_plot.png 文件:可视化结果图。
*
endpoint_timestamps.txt 文件:时间戳列表。
- 参数调整(可选):若对默认检测效果不满意,可修改源码中的相关参数(如帧长、帧移、阈值系数等)以优化特定场景下的性能。
系统要求
- 操作系统:Windows / Linux / macOS
- 编程语言:MATLAB (建议版本 R2018a 或更高版本)
- 必要工具箱:Signal Processing Toolbox(用于音频读写与信号分析)
- 硬件建议:配备可正常工作的麦克风(用于实时音频输入)
文件说明
主程序文件承载了系统的核心逻辑与控制流程。它负责协调整个端点检测任务的执行,具体功能包括:初始化系统参数、引导用户选择输入模式(文件或实时流)、读取或采集音频数据、调用短时能量与过零率计算函数进行特征提取、实施基于动态阈值的端点检测决策、最终生成并保存所有指定的输出结果(分割音频、时序列表和特征图)。