
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 の例
以下は、音声ファイルを Whisper に送り、書き起こし結果を返す 最小限の Node.js の例です。
プロジェクト構成
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 は次の土台として適しています。
- 長い音声の書き起こし
- 多言語の音声テキスト化
- タイムスタンプ付きトランスクリプト
