
Whisper JavaScript 示例:使用 Node.js 将语音转为文字
Eric King
Author
Whisper JavaScript 示例:使用 Node.js 将语音转为文字
Whisper 是一种强大的语音转文字模型,广泛用于语音转文字、音频转写和长语音识別。
本文介绍如何使用 JavaScript(Node.js)配合 Whisper,将音频文件转换为文本。
本文介绍如何使用 JavaScript(Node.js)配合 Whisper,将音频文件转换为文本。
本文适合:
- 正在开发语音转文字功能的开发者
- 使用音频转写的 SaaS 产品
- 需要 Whisper JavaScript 示例的读者
什么是 Whisper?
Whisper 是一种自动语音识别(ASR)模型,可以:
- 将语音转写为文字
- 自动检测所说语言
- 处理较长的音频文件
- 在嘈杂录音下仍能有较好表现
常见用途包括:
- 播客
- 会议
- 采访
- 视频字幕
准备工作
开始之前,请确保具备:
- Node.js 18 或以上
- 音频文件(
mp3、wav、m4a等) - 语音转文字用的 API 密钥(兼容 Whisper)
安装依赖:
npm install openai
基础 Whisper JavaScript 示例
下面是一个最小的 Node.js 示例:将音频文件发送给 Whisper 并返回转写结果。
项目结构
project/
├─ audio/
│ └─ sample.mp3
├─ transcribe.js
└─ package.json
JavaScript 代码:音频转文字
import fs from "fs";
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: process.env.OPENAI_API_KEY
});
async function transcribeAudio() {
const response = await openai.audio.transcriptions.create({
file: fs.createReadStream("./audio/sample.mp3"),
model: "whisper-1"
});
console.log("Transcription result:");
console.log(response.text);
}
transcribeAudio();
运行脚本
node transcribe.js
输出示例:
Hello everyone, welcome to today’s meeting. We will discuss the project timeline.
转写较长的音频文件
Whisper 适合处理较长录音,例如:
- 播客
- 讲座
- 采访
对于非常大的文件,常见做法包括:
- 将音频分段
- 异步转写
- 再合并结果
获取时间戳(可选)
部分基于 Whisper 的系统支持句子级或词级的时间戳。
适用于:
适用于:
- 字幕(SRT / VTT)
- 视频剪辑
- 可搜索的文稿
输出格式示例:
[00:00:01] Hello everyone
[00:00:05] Welcome to today’s meeting
支持的音频格式
Whisper 支持大多数常见格式:
- MP3
- WAV
- M4A
- MP4
- WEBM
若要提高准确度:
- 使用清晰的音频
- 尽量避免强烈背景噪音
- 优先使用 WAV 或高码率 MP3
常见使用场景
- 会议语音转文字
- 播客转写
- YouTube 视频字幕
- 采访转写
- 研究与学术转写
Whisper 与其他语音转文字工具
| 功能 | Whisper |
|---|---|
| 长音频支持 | ✅ |
| 多语言 | ✅ |
| 开源模型 | ✅ |
| JavaScript 支持 | ✅ |
| 时间戳支持 | ✅ |
与许多仅支持实时场景的方案相比,Whisper 在长内容语音转文字方面尤其出色。
总结
本 Whisper JavaScript 示例说明,使用 Node.js 构建语音转文字功能可以非常简单。
只需少量代码,就能准确转写音频文件,并扩展到实际应用场景。
只需少量代码,就能准确转写音频文件,并扩展到实际应用场景。
若您正在构建语音转文字 SaaS,Whisper 可为以下需求提供坚实基础:
- 长音频转写
- 多语言语音转文字
- 带时间戳的文稿
