tsx81429 发表于 2024-10-12 09:41:10

本地搭建 Whisper 语音识别模子全攻略

一、Whisper 语音识别模子概述

https://i-blog.csdnimg.cn/direct/96aa283c595a4f5182d5527733af07c6.png
Whisper 语音识别模子是由 OpenAI 开辟的一款强大工具。它具有开源的特性,这意味着开辟者可以自由获取和使用其相干代码进行研究和应用开辟。Whisper 最为明显的特点之一是其出色的多语言处理能力,可以或许识别和处理多种语言的语音信息。
它通过从网络上网络大量的多语言和多使命监督数据进行训练,从而可以或许应对各种口音、背景噪音和技术术语,在差别语言环境下都能显现出较高的识别精确性和鲁棒性。无论是常见的主流语言,还是一些较为小众的语言,Whisper 都可以或许进行有效的语音识别。
此外,Whisper 还可以或许执行语音翻译和语言识别等多种使命,为用户提供了更加丰富和便捷的语音处理服务。其广泛的实用性和强大的功能,使其在语音识别范畴具有紧张的地位和广阔的应用前景。
二、Whisper 模子的架构与训练

https://i-blog.csdnimg.cn/direct/3621fac734e44179a006c5c1898d4526.png
(一)使用数据集

Whisper 模子是在一个极其巨大且多样化的数据集上进行训练的。这个数据集涵盖了约 68 万小时的标记音频数据,其中包括 11.7 万小时 96 种差别语言的演讲,以及 12.5 万小时从 “任意语言” 到英语的翻译数据。值得一提的是,该模子还利用了由其他主动语音识别系统生成而非人类创建的互联网文本数据。此外,数据集还整合了在 VoxLingua107 上训练的语言检测器,这是从 YouTube 视频中提取的短语音片断的聚集,并依据视频标题和描述的语言进行标记,同时采取额外步骤以去除误报。
(二)模子主要结构

Whisper 模子接纳了编码器 - 解码器的 Transformer 架构。在编码器部分,首先通过一个包含两个卷积层(滤波器宽度为 3)的词干处理输入表现,使用 GELU 激活函数,第二个卷积层的步幅为 2。然后将正弦位置嵌入添加到词干的输出中,接着应用编码器 Transformer 块。Transformers 使用预激活残差块,编码器的输出使用归一化层进行归一化。在解码器中,使用了学习位置嵌入和绑定输入输出标记表现,编码器和解码器具有相同的宽度和数量的 Transformers 块。
(三)训练过程

在训练过程中,输入的音频被分割成 30 秒的小段,并转换为 log-Mel 频谱图,然后通报到编码器。解码器经过训练以预测相应的文字说明,并与特殊的标记进行混淆,这些标记指导单一模子执行诸如语言识别、短语级别的时间戳、多语言语音转录和语音翻译等使命。同时,模子在差别的输入大小上进行了训练,以改进缩放属性。
(四)长处

Whisper 模子具有浩繁明显长处。在精确性方面,它可以或许检测清音区域并应用 NLP 技术在转录本中精确进行标点符号的输入,在各种数据集上取得了更高的精确率。在鲁棒性上,它对差别的口音、背景噪音和技术术语具有精良的适应性,犯的错误相对较少。同时,模子具有可扩展性,答应从音频信号中提取转录本,而无需将视频分成块或批次,降低了漏音的风险。
(五)多种尺寸模子

Whisper 提供了多种尺寸的模子,以平衡速度和精确性。其中,“tiny” 模子具有约 39M 的参数,内存需求较低,约 1GB VRAM,推理速度相对较快;“base” 模子约有 74M 参数,内存需求约 1GB VRAM,推理速度适中;“small” 模子参数约 244M,需 2GB VRAM,推理速度稍慢;“medium” 模子参数约 769M,需 5GB VRAM,推理速度较慢;“large” 模子参数约 1550M,需 10GB VRAM,推理速度为基准速度。
三、本地搭建 Whisper 模子的步骤

https://i-blog.csdnimg.cn/direct/4c3b0257f0214519a5ffc8e8fdc3a597.png
(一)环境准备

要搭建 Whisper 模子,首先必要准备好开辟环境。以下是所需软件的安装步骤:


[*]Node.js:访问 Node.js 官方网站,根据您的操作系统选择相应的安装包进行安装,并按照提示完成安装过程。


[*]Python:发起使用 Python 3.6 或以上版本。您可以从 Python 官方网站下载安装步伐,并在安装过程中注意勾选添加到系统路径的选项。


[*]ffmpeg:ffmpeg 是专门处理音视频的工具。您可以在 ffmpeg 官方网站获取得当您系统的安装包进行安装。
(二)模子安装

Whisper 模子及其相干依赖的安装步骤如下:


[*]创建虚拟环境(可选):python -m venv whisper-env,然后激活虚拟环境:source whisper-env/bin/activate


[*]安装须要的库: pip install torch
pip install numpy
pip install scipy 安装 Whisper 模子:
pip install openai-whisper (三)测试与运行

1. 下令测试

可以使用以下下令进行测试,通过指定差别的参数来实现差别的功能:


[*]whisper audio_file.wav --model base --language Chinese:指定使用base模子对中文音频文件进行处理。


[*]whisper audio_file.mp3 --task translation:指定对音频文件进行翻译使命。
2. 代码测试

以下是通过代码进行声音文件识别和实时录音识别的示例:
声音文件识别:
import whisper

model = whisper.load_model("base")

audio_path = "path/to/your/audio/file.wav"

audio = whisper.load_audio(audio_path)

audio = whisper.pad_or_trim(audio)

mel = whisper.log_mel_spectrogram(audio).to(model.device)

options = whisper.DecodingOptions(fp16=False)

result = whisper.decode(model, mel, options)

print(result.text) 实时录音识别:
import pyaudio

import whisper

model = whisper.load_model("base")

# 设置 PyAudio 参数

FORMAT = pyaudio.paInt16

CHANNELS = 1

RATE = 16000

CHUNK = 1024

audio_interface = pyaudio.PyAudio()
# 创建音频流

stream = audio_interface.open(format=FORMAT, channels=CHANNELS, rate=RATE, input=True, frames_per_buffer=CHUNK)

print("Recording...")

# 实时处理音频数据

while True:

    audio_data = stream.read(CHUNK)

    # 对音频数据进行处理并转录

    audio_array = np.frombuffer(audio_data, dtype=np.int16).astype(np.float32) / 32768.0

    audio_tensor = whisper.pad_or_trim(audio_array)

    mel = whisper.log_mel_spectrogram(audio_tensor).to(model.device)

    result = whisper.decode(model, mel, options)

    print(result.text) 四、本地搭建的注意事项

https://i-blog.csdnimg.cn/direct/3bf25f7ea84f4b56bcf6b6b68b4c32eb.png
(一)硬件资源要求

在本地搭建 Whisper 模子时,硬件资源是一个紧张的考虑因素。模子的训练和推理对 CPU、GPU 和内存都有一定的要求。对于较小规模的应用和测试,一般的 CPU 可能可以或许满足需求,但如果必要进行大规模的训练或处理大量数据,拥有强大的 GPU 会明显提高服从。比方,使用 “large” 模子进行训练时,可能必要至少 10GB 的 VRAM 来保证流畅运行。
如果您的硬件资源有限,可以考虑选择较小的模子,如 “tiny” 或 “base”,它们对硬件的要求相对较低,但在精确性上可能会有所妥协。
(二)模子选择

根据差别的应用场景和需求,选择符合的 Whisper 模子尺寸至关紧张。“tiny” 模子速度快但精确性相对较低,得当对实时性要求高但对精确性要求不苛刻的场景。“large” 模子精确性高,但必要更多的计算资源和时间。
如果您的使命主要是处理简单的语音识别,比方短语音片断或常见的日常用语,较小的模子可能就足够。但如果是处理复杂的语音内容,如包含专业术语或多语言混淆的语音,较大的模子可能更能胜任。
(三)数据准备

确保您的数据质量精良,音频清晰、无明显噪音,并且转录精确。在数据预处理阶段,对音频进行适当的剪辑和清算,可以提高模子的性能。
同时,要注意数据的版权和正当性,避免使用未经授权的数据进行训练。
(四)环境设置问题

在设置开辟环境时,可能会碰到依赖库版本不兼容、安装失败等问题。碰到此类环境,可以尝试更新相干库的版本,或者检察官方文档和社区论坛寻求解决方案。
(五)性能优化

为了提高模子的运行服从,可以对模子进行一些优化操作,如调整超参数、使用混淆精度训练等。但这些操作必要一定的专业知识和履历,发起在充分相识模子原理和相干技术的底子上进行。
五、可能碰到的问题及解决方法

https://i-blog.csdnimg.cn/direct/9b1e9853a0c04ba58a7a3ab3959d9b3a.png
(一)模子加载失败

可能原因:模子文件破坏、依赖库安装不完整或版本不匹配。
解决方法:重新下载模子文件,查抄并确保依赖库的精确安装和版本一致性。
(二)音频处理错误

可能原因:音频格式不支持、音频质量差。
解决方法:将音频转换为支持的格式(如 wav、mp3 等),对音频进行降噪等预处理以提高质量。
(三)计算资源不足

可能原因:硬件设置低,无法满足模子运行需求。
解决方法:降低模子规模,如使用较小的 “tiny” 或 “base” 模子;或者优化模子参数,减少计算量。
(四)识别精确率低

可能原因:数据量不足、模子不得当当前使命。
解决方法:增长训练数据,或者根据使命特点调整模子参数或选择更符合的模子。
(五)代码运行报错

可能原因:语法错误、逻辑错误。
解决方法:细致查抄代码,使用调试工具排查错误。
六、本地搭建的应用与前景

https://i-blog.csdnimg.cn/direct/fa6b4315d1774b0a9c45694ab41b57dc.png
(一)在个人范畴的应用

在个人生存中,本地搭建的 Whisper 模子可以或许为用户提供便捷的语音交互服务。比方,辅助个人写作,通过语音输入快速转化为文字,提高创作服从;资助有学习需求的人进行语音条记的整理,将讲堂、讲座或自我学习中的语音内容精确记录并整理;还能在智能家居系统中实现语音控制,让用户通过简单的语音指令完成各种操作。
(二)在企业中的应用

对于企业而言,本地搭建的 Whisper 模子具有紧张的价值。在客服范畴,它可以实现智能语音客服,快速精确地解答客户的问题,提高客户满意度;在集会记录方面,可以或许实时将集会中的语音内容转化为文字记录,方便后续的整理和分析;在文档处理工作中,大大提高了信息录入的速度和精确性。
(三)在教诲范畴的应用

在教诲场景中,本地搭建的 Whisper 模子有着广阔的应用前景。它可以资助教师将讲课内容快速转换为文字教案,节省时间;为学生提供语音学习辅助,如外语口语练习的实时评估和改正;还能用于特殊教诲,为有语言障碍的学生提供更好的学习支持。
(四)发展方向

将来,本地搭建的 Whisper 模子有望朝着更加智能化和个性化的方向发展。随着技术的不绝进步,模子的识别精确率将进一步提高,可以或许更好地适应各种复杂的语音环境和口音差别。同时,模子将可以或许根据用户的使用习惯和特定需求进行定制化训练,提供更加贴合个人需求的服务。此外,与其他技术的融合,如与物联网、大数据等的联合,将开辟出更多创新的应用场景。
https://i-blog.csdnimg.cn/direct/01c59c120c36480c9d46ad9e2fabda81.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 本地搭建 Whisper 语音识别模子全攻略