リアルタイム字幕を無料で出せる「早耳」とは?CPUだけの音声認識

早耳はCPUだけでリアルタイム字幕を出す無料の音声認識ツール

早耳(hayamimi)は、GitHubユーザーのoboroge0さんがGitHubで公開している無料の音声認識ツールです。マイクに向かって話した声を、話している最中から字幕にすることが可能です。名前の「早耳」は、情報を聞きつけるのが早い人を指す言葉から付けられました。

CPUはPCの計算を担当する中心の部品で、GPUは画像の処理が得意な部品です。早耳はGPUを使わずCPUだけで動作するので、グラフィックボードを搭載していないノートPCでも試すことができます。

GitHubのoboroge0/hayamimiリポジトリのトップページ
早耳のソースコードとモデルの取得スクリプトが公開されているGitHubのページです。GitHub — oboroge0/hayamimi

早耳はGPUもクラウドも使わずメモリ2GB未満で動作

早耳はGPUもクラウドの音声認識サービスも使わず、CPUだけで声を文字起こしします。常にメモリに読み込んでおくモデルの容量はデフォルトで2GB未満で、設定を変更すれば1.35GBまで下げられます。

クラウドの音声認識サービスの多くは、使った分だけ料金が発生する仕組みです。早耳はPCの中で処理が完結するため、長時間の配信でも費用を気にせずに字幕を出し続けることができます。クラウド型の例もあわせてご覧ください。

日本語は話し終えて約0.1秒で字幕が確定

話している途中も約0.5秒ごとに字幕が更新され、日本語なら話し終えてから約0.1秒で文が確定します。なお、作者の実測では日本語の字幕が確定するまでの時間は平均約100msで、5言語を混ぜて全機能を有効にしても平均236msでした。字幕が声から大きく遅れないので、配信の視聴者も声とほぼ同じタイミングで字幕を見ることができます。

コードはMITライセンスで誰でも無料で利用可能

早耳のソースコードはMITライセンスで公開されていて、個人でも仕事でも無料で利用できます。また、最初のバージョンv0.1.0は2026年8月25日に公開され、9月16日のv0.5.0でPCの音声を字幕にする機能などが加わりました。10月13日時点で、GitHubでこのリポジトリに付いたスターは440です。

GitHubで表示した早耳の日本語README(README.ja.md)の冒頭
早耳の機能・導入手順・制限が日本語でまとめられたREADMEです。GitHub — oboroge0/hayamimi(README.ja.md)
ライブ字幕からブラウザ表示、話者ラベル、翻訳字幕まで動きます。(README の冒頭)— GitHub より
公式情報を見る →

早耳は言語ごとに得意なモデルへ振り分けて精度を出す

早耳は話した言語を発話ごとに判定し、その言語が得意な専用のモデルへ振り分けるので、CPUだけでも高い精度が出ます。1つの汎用モデルですべての言語を聞き取るのではなく、日本語には日本語のモデル、英語には英語のモデルを使います。

量子化とは、モデルの重みをより少ない桁数(例: 16ビットから4ビット)の数値に置き換えて軽くする手法のこと。早耳のモデルはすべてINT8に量子化した軽い形式で、sherpa-onnxという仕組みの上で動作するため、PyTorchやCUDAといったGPU向けのツールは必要ありません。

早耳が言語ごとに使うモデル

言語 使うモデル
日本語 ReazonSpeech
英語と欧州24言語 NVIDIA Parakeet TDT v3
中国語 Paraformer-zh
韓国語・広東語 SenseVoice small
その他の約1600言語 Meta Omnilingual ASR

日本語はReazonSpeech、英語はParakeet

日本語の声はReazonSpeech、英語と欧州の24言語はNVIDIAのParakeetというモデルが聞き取ります。中国語はParaformer、韓国語と広東語はSenseVoiceが担当し、それ以外の約1600言語はMetaのOmnilingual ASRに回します。また、言語の判定は発話の冒頭約4秒で行い、2つの判定器の結果が一致したときだけ言語を切り替える設定がデフォルトです。

作者の実測では日本語の誤り率がWhisperの1/3以下

テレビ放送で流れた日本語の音声で測ると、早耳の文字誤り率は3.8%でした。同じ音声でWhisper(whisper-large-v3-turbo)の誤り率が13.8%だったので、早耳の誤り率はその1/3以下です。文字誤り率は、正しい文と比較して間違えた文字が占める割合のことで、数字が小さいほど正確です。

速さは、6コアのデスクトップ向けCPUで実時間の10〜50倍でした。話す速さよりずっと速く処理できるので、リアルタイムの字幕には十分です。どちらも作者の環境での測定で、作者もREADMEで自分の環境以外での検証はまだ多くないとしています。

1文に日本語と英語が混ざる話し方には適していない

早耳は発話1つにつき言語を1つ選ぶため、日本語の文の中に英語の語句が挟まると、その部分が化けたり消えたりします。英単語を多く混ぜて話す配信では、字幕が崩れることがあると考えておきましょう。一方で、文ごとに言語が切り替わる話し方には追従するので、日本語と英語を交互に話す通訳のような状況は得意です。

その言語がいちばん得意なモデルに振り分けます。(なぜ作ったか)/日本語の文に英語フレーズが挟まると、そこが化けるか消えます。(既知の制限)— GitHub より
公式情報を見る →

早耳をインストールして起動する方法

早耳はPythonで書かれたツールで、コマンドを打って導入します。コマンドは、文字で命令を打ち込む画面(Windowsならコマンドプロンプト、Macならターミナル)に入力します。リポジトリを自分のPCに複製して仮想環境を作ったら、次の3つのコマンドを順に実行しましょう。

  • ライブラリのインストール
  • モデルの取得
  • 早耳の起動

早耳を動作させる前に用意するもの

必要なもの 内容
Python 3.10以上
ffmpeg PATHが通った状態にしておく
モデルの容量 約3.1GB(--minimalなら約1.1GB)
作者が試したOS Windows 11

用意するのはPython 3.10以上とffmpeg

早耳を動作させるにはPython 3.10以上と、音声の変換に使うffmpegが必要です。ffmpegは、PATH(どのフォルダからでも呼び出せるようにする設定)が通った状態にしておきます。そのうえでgitを使い、早耳のリポジトリを自分のPCに複製しておきましょう。

git clone https://github.com/oboroge0/hayamimi.git
cd hayamimi
python -m venv .venv

日本語と英語だけならモデルは約1.1GB

最初に取得するモデルは全部で約3.1GBあり、日本語と英語だけを使うなら約1.1GBに抑えられます。また、モデルをダウンロードするコマンドに--minimalを指定すると、ダウンロードされるのは日本語と英語のモデルだけになります。モデルの重みはリポジトリに含まれておらず、このコマンドが各モデルの配布元から取得する仕組みです。

.venv\Scripts\pip install -r requirements.txt
.venv\Scripts\python scripts\download_models.py --minimal

早耳は起動するとマイクの声をその場で文字起こしする

モデルが揃ったら、realtime_transcribe.pyを引数なしで起動するだけで、マイクの声をその場で文字起こしできます。最初はこの状態で何か話してみて、字幕が出るかを試すとよいでしょう。なお、macOSやLinuxではコマンドの「.venv\Scripts」の部分を「.venv/bin」に置き換えて実行します。

.venv\Scripts\python scripts\realtime_transcribe.py
Python 3.10以上と、PATHの通ったffmpegが必要です。(動作環境)/日本語と英語だけの約1.1GB構成になります。(クイックスタート)— GitHub より
公式情報を見る →

OBSの配信にリアルタイム字幕を重ねて表示する方法

OBSに字幕を出すには、早耳が立ち上げる字幕用のページを、OBSのブラウザソースとして取り込みます。ブラウザソースは、Webページを配信画面に重ねて表示するOBSの機能です。早耳の字幕はPCの中のWebページとして表示されるので、OBS側に追加のプラグインをインストールする必要はありません。

早耳のダッシュボード。左に確定した字幕の行、右に清書した文が表示される
READMEに掲載されているダッシュボードの画面です。言語と話者のラベルが字幕の行ごとに表示されています。GitHub — oboroge0/hayamimi(docs/images/dashboard.png)

--serveで字幕のページを立ち上げる

起動コマンドに--serveを指定すると、PC上でWebサーバーが稼働し、字幕のページを3つ開けるようになります。ブラウザでhttp://localhost:8833/dashboardを開くと、話している途中の文字や確定した行のほか、翻訳と清書した文も含むダッシュボードが表示されます。配信画面に重ねるのはhttp://localhost:8833/のほうで、このページには字幕だけが出る仕組みです。

.venv\Scripts\python scripts\realtime_transcribe.py --serve

OBSのブラウザソースに字幕ページのURLを入れる

OBSのソースにブラウザを追加し、URLの入力フィールドへhttp://localhost:8833/を記入すると、配信画面に字幕が表示されます。幅と高さは配信画面の大きさに合わせ、字幕を置きたい位置までソースを移動しましょう。字幕のページはPCの中だけで開くものなので、早耳とOBSは同じPCで起動しておく必要があります。

確定した行と話している途中の行は別々のソースに置ける

字幕ページのURL末尾に?show=finalを追加すると確定した行だけ、?show=partialなら発話中の行だけが表示されます。2つのURLをそれぞれ別のブラウザソースとして追加すれば、確定した字幕は画面の下、途中の字幕はその少し上というように分けて配置できます。なお、字幕のフォントや色を変える設定はREADMEには書かれていません。

このURLを入れると配信画面に字幕が載ります。(デモUI)— GitHub より
公式情報を見る →

翻訳字幕と話者ラベルを追加する設定

早耳は、起動のコマンドにオプションを足すだけで、翻訳字幕や話者のラベルを字幕に加えられます。オプションは組み合わせて使うことが可能で、--serveと一緒に指定すれば、翻訳字幕や話者ラベルがダッシュボードとOBSの字幕にもそのまま表示されます。

字幕に機能を足すオプション

オプション できること
--translate en 日本語の字幕を英語に訳す
--translate zh,ko 中国語・韓国語などに訳す
--speakers 話し手ごとにS1・S2のラベルを表示する
--input speaker PCから流れる音声を字幕にする(Windowsのみ)
--input mix マイクとPCの音声を合わせて字幕にする(Windowsのみ)
--transcript PATH 清書した字幕をファイルに書き足す

--translateで日本語の字幕を英語などに訳す

--translate enを指定すると、日本語の字幕と一緒に英語の訳がリアルタイムで表示されます。英語への翻訳にはFuguMTという日英翻訳のモデルを使い、中国語・韓国語・スペイン語などへはM2M-100という多言語の翻訳モデルを使います。

「--translate en,zh,ko」のようにカンマで区切れば、複数の言語へ同時に訳すこともできます。作者は中国語・韓国語・スペイン語の3つで翻訳の品質を実測しています。

--speakersで話し手ごとにS1・S2のラベルを表示

--speakersを指定すると、声の特徴から話者を聞き分けて字幕の行ごとにS1・S2のようなラベルが表示されます。対談やコラボ配信で、どの発言が誰のものかを見分けやすくなります。ただし話者の数は多めに出る傾向があり、作者の実測では4人の会議で4〜8人と推定されました。

PCから流れる音声を字幕にできるのはWindowsだけ

--inputでspeakerを選ぶと、マイクではなくPCから流れる音声(通話相手の声や動画の音)を字幕にできます。--input mixならマイクとPCの音声を合わせて1本にするので、オンライン会議で自分と相手の声をまとめて文字起こしする使い方ができます。

--input speakerと--input mixは、Windowsのループバックという仕組みを使うため、現時点ではWindows専用です。通話の声をマイクでも拾って二重にならないよう、READMEはヘッドホンの利用を勧めています。

マイクとスピーカー音声を合成した1本のストリームを文字起こしするので、(スピーカーループバック入力)/(他のOS向けのループバック経路はまだ実装していません)。(同)— GitHub より
公式情報を見る →

早耳を使う前に知っておきたい注意点

早耳は2026年8月に公開されたばかりのツールで、READMEにもいくつかの制限が書かれています。配信で本格的に使う前に、自分のPCと話し方で字幕がどこまで正確に出るかを一度試しておきましょう。

READMEに書かれている主な制限

制限の種類 内容
動作を試したOS Windows 11のみ
同時に話す2人 声を分けられない
翻訳 中国語・韓国語への訳で数字や金額を誤ることがある
日本語の固有名詞 --hotwordsが効かない(--replaceで修正する)

作者が動作を試したのはWindows 11だけ

早耳の開発と検証はWindows 11で行われていて、macOSとLinuxはまだ通して試されていません。使っている部品はどれも複数のOSに対応しているため、MacやLinuxでも動作するはずだとREADMEには書かれています。作者は動作したかどうかの報告を歓迎しているので、Macで試したらIssueで結果を伝えると開発の助けになります。

同時に話す2人の声は分けられない

2人が同時に話した部分は、早耳では声を分けて字幕にすることができません。話者のラベルも先に処理した側の人に付くため、声が重なりやすい雑談では誰の発言かがずれることがあります。効果音やBGMの直後の短い発話では、早耳が言語を誤って判定することがあります。

中国語・韓国語への翻訳では数字や金額を間違えることがある

翻訳に使うモデルは小型のため、とくに中国語・韓国語への訳では数字や金額を間違えることがあります。ただし、早耳には数字が崩れた訳文を見つけると原文をそのまま出す安全装置がありますが、金額が出てくる状況では訳をそのまま信じないほうが安全です。また日本語の固有名詞は--hotwordsでは正しく認識させられないので、「誤=正」の形式で書いた置換辞書を--replaceで読み込ませます。

実機での通し確認はまだできていません。(動作環境)/数字が壊れた訳文は原文をそのまま出す安全装置を入れています。(既知の制限)— GitHub より
公式情報を見る →

まとめ:早耳ならCPUだけで無料のリアルタイム字幕を出せる

早耳は、GPUもクラウドも使わずにCPUだけでリアルタイム字幕を出せる無料の音声認識ツールです。また、早耳は2GB未満のメモリで動作し、日本語なら話し終えてから約0.1秒で字幕が確定します。--serveで立ち上げたhttp://localhost:8833/をOBSのブラウザソースに入れれば、配信画面に字幕を表示できます。

翻訳字幕や話者のラベルもオプション1つで加えられますが、作者が試したのはWindows 11だけで、1文に日本語と英語が混ざる話し方は苦手です。まずは--minimalで日本語と英語のモデルだけを入れ、自分の声で字幕の出方を試してみましょう。

FAQ

早耳はMacでも動作するのか?
作者が動作を試したのはWindows 11だけですが、使っている部品は複数のOSに対応しているため、macOSでも動作するはずとされています。導入の手順は同じで、コマンドの「.venv\Scripts」を「.venv/bin」に置き換えて実行します。ただしPCの音声を字幕にする--input speakerと--input mixはWindows専用で、Macではマイクの声が対象です。
インターネットに接続していなくても字幕は出るのか?
モデルを最初に取得するときはインターネットが必要ですが、取得した後の音声認識はクラウドを使わずPCの中で行います。そのため回線が不安定な場所でも、声を外部に送信せずに字幕を出し続けることができます。
早耳を配信や仕事で使ってもよいのか?
ソースコードはMITライセンスなので、配信や仕事で使うことができます。モデルはそれぞれ別のライセンスで、英語への翻訳モデルはCC BY-SA 4.0です。このモデルの重みを自分で再配布するときだけ、クレジットの表示と同じライセンスでの公開が必要になります。