本地部署开源语音识别模型Vosk,实现音频语音识别和实时语音识别


Vosk:开源语音识别项目简介

什么是Vosk?

Vosk是一个开源语音识别项目,由俄罗斯非营利组织DariaLab开发。该项目旨在提供一种免费、开源的语音识别工具,帮助开发者快速构建各种语音识别应用。

为什么要用Vosk?

本地部署的语音识别模型具有以下显著优势:

  • 离线使用:无需网络连接,用户可在无网络环境下便捷使用。
  • 快速响应:本地部署可实现更快的响应速度。
  • 隐私保护:最大程度保护用户隐私,数据无需上传云端。

环境准备

下载模型

前往Vosk官网下载模型:VOSK Models。根据个人语言需求选择并下载对应模型。
在这里插入图片描述

安装Python库

Vosk需要以下Python库支持:

pip install json
pip install wave
pip install vosk
pip install pyaudio

示例代码

音频语音识别

目前Vosk仅支持wav格式音频,无法直接识别mp3格式。(也有可能是我下载的音频的问题)

import json
from vosk import Model, KaldiRecognizer
import wave

# 加载模型
model = Model("模型保存地址")
# 加载音频
sound = wave.open("音频文件地址")
# 创建识别器
recognize = KaldiRecognizer(model, 16000)

print('开始识别!')
while True:
    # 每次读取音频文件4000帧
    frame = sound.readframes(4000)
    # 若读取不到数据则退出循环
    if not frame:
        break
    # 传入数据进行识别
    recognize.AcceptWaveform(frame)

result = json.loads(recognize.FinalResult())['text'].replace(' ', '')
print(result)

实时语音识别

import pyaudio
import json
from vosk import Model, KaldiRecognizer
import wave

# 加载模型
model = Model("模型保存地址")
# 创建麦克风对象
micro = pyaudio.PyAudio()
# 配置麦克风参数
receiver = micro.open(
    format=pyaudio.paInt16,  # 16位深度音频数据
    channels=1,  # 单声道
    rate=16000,  # 采样率16000Hz
    input=True,  # 从麦克风获取数据
    frames_per_buffer=4000)  # 每次读取数据块大小为4000帧

# 创建识别器
recognize = KaldiRecognizer(model, 16000)

print('开始识别!')
while True:
    # 每次读取4000帧数据
    frame = receiver.read(4000)
    # 若识别到数据
    if recognize.AcceptWaveform(frame):
        trans = recognize.Result()
        result = json.loads(trans)['text'].replace(' ', '')
        print(result)

使用总结

个人使用体验如下:

  • 实时语音识别流畅度较高,响应迅速。
  • 但Vosk无法根据语义对用户输入的一段话进行合并或分段,导致识别结果可能断断续续或过于冗长。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值