从音频到文本:使用Gemma 3n转录语音

The Gemma-3n.net Team
2025年7月19日

Gemma 3n不仅仅用于文本。它的真正力量在于其原生多模态功能,允许它理解和处理各种输入,包括音频。这对于设备上AI应用程序来说是一个游戏规则改变者。

在本教程中,我们将探索如何使用Gemma 3n执行最常见的音频任务之一:语音到文本转录。我们将使用针对Apple Silicon优化的mlx-vlm库来演示这个强大功能。

为什么多模态很重要

在我们深入之前,让我们理解为什么这如此令人兴奋。一个能够处理文本、音频和图像的单一、高效模型为开发者开启了一个新的可能性世界,从创建语音控制应用程序到构建能够”看到”和”听到”周围世界的工具——所有这些都通过优先考虑用户隐私在设备上运行。

步骤1:设置你的环境

本指南专注于在带有Apple Silicon的Mac上使用mlx-vlm库,因为它为Gemma 3n的多模态功能提供了出色的优化性能。

首先,你需要安装Python和pip。我们建议使用虚拟环境来保持项目依赖的组织性。

# 为你的项目创建一个新目录
mkdir gemma-audio-test && cd gemma-audio-test

# 创建并激活虚拟环境
python3 -m venv .venv
source .venv/bin/activate

接下来,安装所需的库。mlx-vlm包将为我们处理模型下载和推理。

pip install mlx-vlm

步骤2:准备你的音频文件

你需要一个音频文件来转录。对于这个例子,让我们假设你有一个保存为my-speech.wav的短语音片段。WAV格式是此任务的好选择。

如果你没有,你可以使用QuickTime Player或Mac上的任何其他音频录制软件轻松录制一个短片。

步骤3:编写转录脚本

现在,让我们编写一个简单的Python脚本来加载Gemma 3n模型并转录我们的音频文件。创建一个名为transcribe.py的文件:

import mlx.core as mx
from mlx_vlm import load

# 加载Gemma 3n模型。这将在第一次运行时下载模型权重。
# 注意:模型有几个GB,所以第一次运行可能需要一段时间。
model, processor = load("gg-hf-gm/gemma-3n-E4B-it")

# 为模型准备提示和音频文件。
# 提示指导模型需要执行的任务。
prompt = "用英语转录以下语音片段:"
audio_file = "my-speech.wav"

# 生成转录
response = model.generate(
    audio=audio_file,
    prompt=prompt,
    max_tokens=256,
    temp=0.0 # 对转录等事实性任务使用0.0的温度
)

# 打印结果
print(f"转录:\n{response}")

步骤4:运行脚本

将你的transcribe.py脚本和my-speech.wav音频文件放在同一目录中,从终端运行脚本:

python transcribe.py

第一次运行时,mlx-vlm将下载Gemma 3n模型,这可能相当大(E4B-it版本约为15GB)。请耐心等待。后续运行会快得多,因为模型将在本地缓存。

一旦模型加载完成并且推理完成,你应该看到音频文件的转录打印到控制台!

视频指南

虽然本教程专注于使用MLX的设备上功能,但音频理解的基础技术与Google更广泛的模型系列共享。这个视频提供了使用Python从音频生成文本的出色概述,展示了类似的概念。

结论

你刚刚成功使用了Gemma 3n的多模态功能将语音转换为文本。这只是开始。你可以调整这个脚本来构建更复杂的应用程序,如本地语音助手、会议转录工具或无障碍应用程序。

敬请关注更多教程,我们将探索Gemma 3n的其他多模态功能,包括图像理解!

PWA已就绪