音转文模型对比FunASR与Faster_whisper

FunASR简介

FunASR是由阿里巴巴达摩院开源的语音识别工具包,提供包括语音识别(ASR)、语音活动检测(VAD)、标点恢复、语言模型、说话人验证、说话人分离及多说话人ASR等多种功能。FunASR工具包支持工业级语音识别模型的训练和微调,旨在帮助研究人员和开发者更高效地进行语音识别模型的研究和生产,推动语音识别技术的发展。FunASR基于提供预训练模型和易于使用的接口,使用户快速部署语音识别服务,满足不同场景的应用需求。2024年10月16日,FunASR新增支持Whisper-large-v3-turbo模型,进一步扩展在语音识别领域的应用能力。

  • 语音识别(ASR):将语音信号转换为文本信息。
  • 语音活动检测(VAD):识别语音信号中的有效语音部分,过滤掉静音或背景噪音。
  • 标点恢复:在语音识别结果中自动添加标点符号,提高文本的可读性。
  • 说话人验证:识别并验证说话人的身份。
  • 说话人分离:在多人对话中区分不同说话人的声音。
  • 多说话人ASR:处理多人同时说话的场景,识别和区分每个人的语音。

FunASR的技术原理

  • 自然语言处理(NLP):理解和生成自然语言,实现流畅对话。
  • 语音识别和合成:将用户的语音转换为文本,合成虚拟角色的语音输出。
  • 语音端点检测(VAD):基于FSMN-VAD模型,准确检测语音的起始和结束,提高语音识别的准确性。
  • 标点预测:集成标点预测模型,能在转录文本中自动添加标点符号,使转录结果更加符合阅读习惯,提升文本的可读性。

FunASR的项目地址

代码实现

在项目中主要使用的是speech_seaco_paraformer这个音转文模型。

python 复制代码
import json
import time
from funasr import AutoModel
# 计时开始
start_time = time.time()
# 初始化模型 - 使用支持热词的新模型
model = AutoModel(
    # model="iic/speech_paraformer-large-vad-punc-spk_asr_nat-zh-cn",
    model="iic/speech_seaco_paraformer_large_asr_nat-zh-cn-16k-common-vocab8404-pytorch",
    vad_model="iic/speech_fsmn_vad_zh-cn-16k-common-pytorch",
    punc_model="iic/punc_ct-transformer_zh-cn-common-vocab272727-pytorch",
    spk_model="iic/speech_campplus_sv_zh-cn_16k-common",
    vad_kwargs={"max_single_segment_time": 1000}
)
# 生成语音识别结果
res = model.generate(
    input="音频文件.wav",
    merge_vad=False,  
)

# 提取所需字段
simplified_result = []
durations = []  # 用于存储每段的时间长度
print('总音频',res[0]['text'])

#以下代码可以获取生成时间,需要输出时间的情况。
#for i,segment in enumerate(res):
#                    segmentText = res[0]['text']
#                    # print(self.device_clerk,i,"[%.2fs -> %.2fs] %s" % #(segment.start, segment.end, segmentText))
#                    print(f"{self.device_clerk} {i} [{segment.get('start', 0):.2f}s #-> {segment.get('end', 0):.2f}s] {segmentText}")

Faster_whisper

faster-whisper是基于OpenAI的Whisper模型的高效实现,它利用CTranslate2,一个专为Transformer模型设计的快速推理引擎。这种实现不仅提高了语音识别的速度,还优化了内存使用效率。faster-whisper的核心优势在于其能够在保持原有模型准确度的同时,大幅提升处理速度,这使得它在处理大规模语音数据时更加高效。

代码实现

具体的调用代码:

python 复制代码
from faster_whisper import WhisperModel


model = WhisperModel(model_path, device="cuda", device_index=[cuda_index], compute_type="float16")


segments, info = self.model.transcribe(
                     audio_file, language="zh",vad_filter=True) 





for i,segment in enumerate(res):
                 segmentText = res[0]['text']
                 print(self.device_clerk,i,"[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segmentText))

结论

模型经过对比

FunASR的速度要比Faster_whisper要快,并且FunASR是中文模型,使用的是中文数据进行训练,并且支持添加标点符号模型、语句中断模型等。

如果你需要中文音转文,那么FunASR的speech_seaco_paraformer是优先考虑模型。

相关推荐
J心流5 天前
89ms实时Whisper,显存还降48%
whisper
iDao技术魔方9 天前
whisper.cpp 深度解析:从边缘设备到实时语音识别
人工智能·whisper·语音识别
Gc9umsbL112 天前
从FLAC到WAV:whisper.cpp中的FFmpeg音频预处理全解析
ffmpeg·whisper·音视频
Bofu-15 天前
【音频测试】03-WPF 实现声道自动验证 + Whisper 语音识别录音检测
c#·whisper·wpf·音视频·音频测试·naudio 声道控制
JK Chen19 天前
faster_whisper,视频转文字,并生成字幕文件
python·whisper·音视频
工作log20 天前
10分钟搭建本地语音识别服务 (Whisper large-v3-turbo)
人工智能·whisper·语音识别
shao91851622 天前
第10章 Streaming(上):初级音频应用(1)——项目三:自建服务器的Mini-Omni实时语音聊天机器人
ffmpeg·whisper·asr·mini-omni·自建语音服务器
code_pgf1 个月前
MNN Whisper 实时 ASR 工程实现
人工智能·whisper·mnn
独占的甜蜜1 个月前
从FLAC到WAV:whisper.cpp中的FFmpeg音频预处理全解析过程
ffmpeg·whisper·音视频
独占的甜蜜1 个月前
从FLAC到WAV:whisper.cpp中的FFmpeg音频预处理全解析
ffmpeg·whisper·音视频