PaPoo
cover
technews
Author
technews
世界の技術ニュースをリアルタイムでキャッチし、日本語でわかりやすく発信。AI・半導体・スタートアップから規制動向まで、グローバルテックシーンの「今」をお届けします。

動画URLや音声ファイルをそのまま文字起こしできる「yapsnap」が面白い

キーポイント

yapsnapって何?

GitHubで公開されている yapsnap は、ひとことで言うと​「動画や音声を、その場でplaintext(普通のテキスト)に変換する道具」​です。

しかも、ただの文字起こしツールではありません。READMEを見る限り、このプロジェクトの気合いはかなり明確で、

という思想が前面に出ています。

この手のツールって、最近は「AIで文字起こし」と聞くと、どうしてもクラウドAPIや高性能GPUが前提になりがちです。
でも yapsnap はそこをかなり潔く切っています。​自分のPCだけで、気軽に、そこそこ高性能に動かす。この方向性はかなり好感が持てます。個人的には、こういう“地に足のついたAIツール”はかなり好きです。

何がうれしいのか

1. CPUだけで速い

READMEでは、Kroko English という streaming Zipformer transducer を使い、​ラップトップのCPUでも実時間の数倍で処理できると説明されています。

ここでいう「実時間の数倍」というのは、たとえば10分の音声を10分よりかなり短く処理できる、という意味です。
もちろん環境差はありますが、少なくとも「待たされすぎてつらい」タイプのツールではなさそうです。

2. URLもローカルファイルもOK

対応範囲が広いのも強いです。

つまり、「Web上の動画を拾って文字起こししたい」でも、「手元の会議録音をテキスト化したい」でも、同じ道具で済むわけです。
この“入口の広さ”は、実用ツールとしてかなり重要だと思います。

3. 初回だけダウンロード、あとはオフライン

初回実行時に約80MBのモデルをダウンロードしますが、その後はオフラインで使えるそうです。

これは地味に大事です。
クラウド依存の文字起こしサービスは便利ですが、ネット環境、料金、API制限、機密情報の取り扱いなど、いろいろ気を使います。
yapsnap は「音声が自分のマシンから出ていかない」という安心感があるので、​会議音声やインタビュー音声の扱いに向いていそうです。

4. 依存関係が軽い

READMEによると、ランタイム依存は主に

image_0002.svg

とのこと。
PyTorchもクラウドSDKも不要。これはかなりスッキリしています。

機械学習系のツールは、入れてみたら依存関係の森に迷い込むことがよくあります。
その点、yapsnap は「とりあえず動かす」までの心理的ハードルが低そうです。こういう軽さは正義だと思います。

使い方はかなりシンプル

READMEのQuickstartは本当にシンプルです。

pip install yapsnap
yapsnap https://www.tiktok.com/@user/video/7234567890123456789

ローカルファイルでも同じです。

yapsnap meeting.mp4 --timestamps
yapsnap interview.mp3 --diarize
yapsnap podcast.mp3 -o ~/notes/episode.txt

要するに、​​「入れる → 打つ → テキストが出る」​だけ。
このわかりやすさはかなり魅力的です。ツールは結局、機能の多さより「最初の1回がラクかどうか」が勝負だったりします。

どんな出力が得られる?

基本は plaintext(ただのテキスト)​ です。保存先はデフォルトで ./transcripts/ 配下になります。

タイムスタンプなし

普通の段落として出力されます。

Welcome to the show. Today we're talking about transcription. Let's get started.

--timestamps

文ごとに時刻が付きます。

[00:00] Welcome to the show.
[00:03] Today we're talking about transcription.
[00:08] Let's get started.

これはあとから見返すときに便利です。
「この発言どこだっけ?」がすぐ追えるので、議事録や講義ノートにかなり向いています。

image_0003.svg

--diarize

さらに踏み込んで、​誰が話したかまで付けます。
SPEAKER_00SPEAKER_01 のようにラベルが付き、発話順に整理されます。

SPEAKER_00 [00:00]: Welcome to the show.
SPEAKER_01 [00:03]: Glad to be here, thanks for having me.
SPEAKER_00 [00:08]: Let's get started.

ここでいう diarize は、​音声の中から話者を分ける処理です。
つまり、「声の特徴を見て、同じ人っぽい発話をまとめる」イメージです。

会議録や対談の文字起こしでは、この機能がかなり効きます。
個人的には、文字起こしそのものよりも、​**“誰が話したか”が見えることのほうが実務では価値が高い**場面も多いと思います。

仕組みもわりと透明で好印象

READMEには、処理の流れがかなり素直に書かれています。

  1. Fetch
    URLなら yt-dlp で音声を取ってくる。ローカルファイルならそのまま。

  2. Decode
    ffmpeg で 16kHz mono PCM に変換する。
    ここで atempo による速度調整も入ります。

  3. Recognize
    Kroko English の streaming Zipformer2 transducer が音声を認識する。

  4. Format
    プレーンテキストに整える。--timestamps を付けると文単位に時刻を付ける。

--diarize を使うと、別の音声セグメンテーションモデルと speaker embedding モデルを使って、発話者ごとに分けるそうです。

ここで大事なのは、​全部CPUで完結することと、​音声が外部に送られないことです。
この設計は、派手さよりも堅実さを優先していて、かなり好感が持てます。

実用面で気になるポイント

対応言語

READMEでは、英語がデフォルトで、他にもフランス語、ドイツ語、スペイン語、イタリア語、ポルトガル語、オランダ語、スウェーデン語、スイスドイツ語、ヘブライ語、トルコ語などに対応できるとあります。
ただし、これはモデルの切り替えが必要です。

つまり、「どの言語でも完全にワンクリック」というより、​英語以外はモデルを選ぶ前提です。
ここは少しだけ注意が必要ですが、それでも選択肢があるのはうれしいところです。

速度調整

--speed で、文字起こし前に音声を速くできます。デフォルトは 1.5x です。
しかも音程は保ったまま速くするので、聞こえ方が変になりにくいようです。

image_0004.svg

これはおもしろい発想です。
人間が聞くときに「少し速くしても意味はわかる」ことが多いのと同じで、モデルに入れる前の処理を工夫してスピードを稼いでいるわけです。かなり賢いと思います。

出力先

デフォルトでは ./transcripts/<input>_transcript.txt のように保存されます。
もちろん -o で変更可能です。

この「デフォルトはわかりやすく、必要なら自由に変えられる」設計は、CLIツールとしてとてもいいです。
変に多機能すぎず、でも現場で困らない。ちょうどいい塩梅だと思います。

このツールのいちばん面白いところ

yapsnap の面白さは、単に「文字起こしができる」ことではないと思います。
むしろ、​クラウドに頼らず、重い環境もいらず、動画URLひとつで文字情報に変えられるという体験そのものに価値があります。

今のAIツールって、派手なデモは多い一方で、「で、結局自分のPCで気軽に使えるの?」というところが弱いこともあります。
その点 yapsnap は、かなり実務的です。
「とにかく速く、静かに、余計なことをせずに動く」タイプの道具で、こういうのは長く残る気がします。

もちろん、これだけで全ての音声認識課題が解決するわけではないでしょう。
認識精度や多言語性能、長時間音声への相性など、実際には試してみないとわからない部分もあります。
でも、READMEから受ける印象としては、​**“気軽に試せる実用ツール”としてかなり筋がいい**と感じました。

こんな人に向いていそう

逆に、GUIアプリで全部完結したい人には少し向かないかもしれません。
でも、ターミナルに慣れている人にとっては、かなり気持ちよく使えそうです。

まとめ

yapsnap は、​​「動画URLや音声ファイルを、CPUだけで、クラウドなしで、すぐテキスト化する」​という、かなり潔い文字起こしツールです。

派手なAIサービスというより、​ちゃんと使える道具としての魅力が強いです。
個人的には、この手のプロジェクトは「便利そう」より「実際に自分の作業をどれだけ軽くするか」が重要だと思っていて、その意味で yapsnap はかなり有望に見えます。

文字起こしをもっと身近にしたい人には、かなり刺さるのではないでしょうか。


参考: GitHub - kouhxp/yapsnap: Snap any video URL or audio file into plaintext. No GPU. No cloud. One command.

同じ著者の記事