Whisper 是 OpenAI 提出的一个自动语音识别 (ASR) 系统,它基于从网络收集的 680,000 小时多语言和多任务监督数据进行训练。我们表明,使用如此庞大且多样化的数据集可以提高对口音、背景噪音和技术语言的鲁棒性。此外,它还可以转录多种语言,以及将这些语言翻译成英语。
Whisper 架构是一种简单的端到端方法,以编码器-解码器 Transformer 的形式实现。输入音频被分成 30 秒的片段,转换成对数梅尔谱图,然后传入编码器。解码器经过训练可以预测相应的文本字幕,并与特殊标记混合,指导单个模型执行语言识别、短语级时间戳、多语言语音转录和英语语音翻译等任务。
由于 Whisper 是在大型多样化数据集上进行训练的,并且未针对任何特定数据集进行微调,因此它无法击败专门针对 LibriSpeech 性能的模型,LibriSpeech 是语音识别领域著名的竞争基准。然而,当我们在许多不同的数据集上测量 Whisper 的零样本性能时,我们发现它比那些模型更加稳健,错误率降低了 50%。Whisper 的音频数据集中约有三分之一是非英语的,它交替被赋予转录为原始语言或翻译成英语的任务。我们发现这种方法在学习语音到文本的翻译方面特别有效,并且在 CoVoST2 到英语翻译零样本上优于监督 SOTA。
whisper.cpp 是 OpenAI Whisper 的高性能实现。具有以下特点:
该模型的整个高级实现包含在 whisper.h
和 whisper.cpp
中。其余代码是 ggml 机器学习库的一部分。
瑞莎星睿 O6 (Radxa Orion O6) 是一款面向 AI 计算和多媒体应用的专业级 Mini-ITX 主板。它搭载 Cix P1 SoC(型号 CD8180),支持 最高 64GB LPDDR5 内存,在紧凑的尺寸下提供服务器级性能。Orion O6 具备丰富的 I/O 接口,包括 四路显示输出、双 5GbE 网络 和 PCIe Gen4 扩展,非常适合 AI 开发工作站、边缘计算节点 以及 高性能个人计算 应用。
规格 | 详细信息 |
---|---|
主板类型 | 基于 ARM 的 Mini-ITX 主板 |
尺寸 | 170 x 170 x 25mm |
处理器(CPU) |
Cix P1 - CD8180 • 四核大核 Cortex®-A720、四核中核 Cortex®-A720、四核小核 Cortex®-A520 • 12MB L3 共享缓存 |
图形处理器(GPU) |
Arm® Immortals™ G720 MC10 GPU,支持: • 硬件光线追踪 • OpenGL® ES3.2 • OpenCL® 3.0 • Vulkan® 1.3 |
神经处理单元(NPU) | 支持 INT4 / INT8 / INT16 / FP16 / BF16 和 TF32 加速,算力高达 28.8TOPs |
视频解码 | 支持 AV1 / H.265 / H.264 / VP9 / VP8 / H.263 / MPEG-4 / MPEG-2,最高 8K@60fps |
视频编码 | 支持 H.265 / H.264 / VP9 / VP8,最高 8K@30fps |
内存 | <p>类型: 128-bit LPDDR5,板载焊接</p> <p>容量选项: 8GB、12GB、16GB、24GB、32GB、64GB</p> <p>速度: 5500MT/s</p> |
存储接口 | 1x M.2 M Key 插槽,支持 PCIe Gen4 4 通道 NVMe SSD |
无线连接 | 1x M.2 E Key 插槽,支持 PCIe Gen4 2 通道和 USB,可用于 WiFi/蓝牙模块 |
PCIe 插槽 | 1x PCIe x16 全尺寸插槽,支持 PCIe Gen4 8 通道 |
视频输出 |
• 1x HDMI,最高 4Kp60 • 1x DisplayPort(DP),最高 4Kp120,支持 2 路 MST • 1x USB-C(支持 DP),最高 4Kp60 • 1x eDP,最高 4Kp60 |
以太网接口 | 2x 1G / 2.5G / 5G 以太网端口 |
USB 接口 |
• 2x USB 2.0 Type-A(后置) • 2x USB 3.2 10Gbps Type-A(后置) • 2x USB 2.0(前置内部接口) • 2x USB Type-C(后置),支持 USB 3.2 10Gbps,其中一个支持 DP 视频输出 |
音频 |
• 1 个带麦克风输入功能的耳机插孔(背板处) • 1 个前置面板音频连接器,用于连接前置面板的 3.5 毫米音频插孔 |
电源输入 |
• ATX 24P 电源接口 • USB-C PD 电源输入(20V/3.25A 或更高) • 20V USB-C 适配器直出 |
推荐电源 | 至少 65W |
工作温度 | 0°C 至 40°C |
散热 |
• 4x 散热器安装孔(75mm x 75mm) • 1x 4P 风扇接口,支持 PWM 调速与 TACH 反馈 |
RTC 实时时钟 | RTC 电池座(支持 CR1220 电池) |
支持的操作系统 | Debian / Ubuntu Linux |
首先克隆存储库:
git clone https://github.com/ggerganov/whisper.cpp.git
导航到目录:
cd whisper.cpp
然后,下载一个已转换为 ggml
格式的 Whisper 模型。例如:
sh ./models/download-ggml-model.sh base.en
现在构建 whisper-cli
示例并转录这样的音频文件:
# build the project
cmake -B build -DGGML_NATIVE=OFF -DGGML_CPU_ARM_ARCH=armv9-a
cmake --build build --config Release
# transcribe an audio file
./build/bin/whisper-cli -f samples/jfk.wav
Orien O6 搭载 ARM V9 架构的CPU,增加编译选项 -DGGML_CPU_ARM_ARCH=armv9-a
可开启SVE、SVE2、SME等指令的优化,加速 ggml
模块计算,提升推理速度。
如需快速演示,只需运行 make base.en
。
该命令下载转换为 ggml
格式的模型 base.en
,并对文件夹中的所有 .wav
样本运行推理。
有关详细使用说明,请运行:./build/bin/whisper-cli -h
。
请注意,whisper-cli
示例目前仅适用于 16 位 WAV 文件,因此请确保在运行之前使用 ffmpeg
工具对输入进行转换。例如:
ffmpeg -i input.mp3 -ar 16000 -ac 1 -c:a pcm_s16le output.wav
Model | Disk | Mem |
---|---|---|
tiny | 75 MiB | ~273 MB |
base | 142 MiB | ~388 MB |
small | 466 MiB | ~852 MB |
medium | 1.5 GiB | ~2.1 GB |
large | 2.9 GiB | ~3.9 GB |
选用 base-en
模型,对输入文件 jfk.wav
进行推理,设置线程数为 8
可获得 Orien o6 上的最佳推理性能。
./build/bin/whisper-cli -f samples/jfk.wav -m models/ggml-base.en.bin -t 8
音频文件被成功识别为以下文字:
$ And so my fellow Americans, ask not what your country can do for you, ask what you can do for your country.
模型各模块的详细运行时间如下:
whisper.cpp
支持 Whisper ggml
模型的整数量化。 量化后的模型可以减少内存和磁盘空间需求,并获得硬件的更高效的处理。
以下是创建和使用量化模型的步骤:
# quantize a model with Q5_0 method
cmake -B build
cmake --build build --config Release
./build/bin/quantize models/ggml-base.en.bin models/ggml-base.en-q5_0.bin q5_0
# run the examples as usual, specifying the quantized model file
./build/bin/whisper-cli -m models/ggml-base.en-q5_0.bin ./samples/gb0.wav