项目简介
本项目是基于Flask和Vue构建的自动语音识别系统。前端运用Vue搭建用户交互界面,后端借助Flask提供服务。利用tensorflow==2.1.0
实现自动语音识别功能,支持英语语音识别,且具备模型训练和预测的相应流程与方法。
项目的主要特性和功能
- 语音识别:可将16kHz采样率的英语音频转换为文本。
- 模型训练:支持使用预定义的DeepSpeech2模型结构进行训练,能设置模型参数、训练数据、优化器等。
- 模型评估:可计算词错误率(WER)和字符错误率(CER),以此评估模型性能。
- 模块化设计:管道组件相互独立,可按需调整特征提取、数据增强或添加语言模型解码器等。
安装使用步骤
安装依赖
可使用pip
安装:
bash
pip install automatic-speech-recognition
或者复制代码并通过conda
创建新环境:
bash
conda env create -f=environment.yml # 或使用: environment-gpu.yml
conda activate Automatic-Speech-Recognition
数据准备
准备好音频文件和对应的文本文件用于训练和测试模型,并将其路径配置到相应的CSV文件中。
模型训练
运行以下Python代码进行模型训练: ```python import numpy as np import tensorflow as tf import automatic_speech_recognition as asr
dataset = asr.dataset.Audio.from_csv('train.csv', batch_size=32) dev_dataset = asr.dataset.Audio.from_csv('dev.csv', batch_size=32) alphabet = asr.text.Alphabet(lang='en') features_extractor = asr.features.FilterBanks( features_num=160, winlen=0.02, winstep=0.01, winfunc=np.hanning ) model = asr.model.get_deepspeech2( input_dim=160, output_dim=29, rnn_units=800, is_mixed_precision=False ) optimizer = tf.optimizers.Adam( lr=1e-4, beta_1=0.9, beta_2=0.999, epsilon=1e-8 ) decoder = asr.decoder.GreedyDecoder() pipeline = asr.pipeline.CTCPipeline( alphabet, features_extractor, model, optimizer, decoder ) pipeline.fit(dataset, dev_dataset, epochs=25) pipeline.save('/checkpoint') ```
模型预测
使用以下Python代码进行语音识别预测: ```python import automatic_speech_recognition as asr
file = 'to/test/sample.wav' # 采样率为16kHz,位深度为16位 sample = asr.utils.read_audio(file) pipeline = asr.load('deepspeech2', lang='en') pipeline.model.summary() # TensorFlow模型 sentences = pipeline.predict([sample]) ```
模型评估
运行以下Python代码评估模型:
python
test_dataset = asr.dataset.Audio.from_csv('test.csv')
wer, cer = asr.evaluate.calculate_error_rates(pipeline, test_dataset)
print(f'WER: {wer} CER: {cer}')
启动服务
分别启动前端Vue项目和后端Flask服务,进行系统的交互使用。在Vue
目录下启动前端项目,在flask_server
目录下启动后端服务。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】