LoginSignup
0
0

音声認識に興味があったのでWhisper触ってみた

Last updated at Posted at 2024-02-09

これはなに

  • 業務上の議事録を書くのって面倒で忘れがち、でも後で思い出せず困ることがあった
  • 楽に思い出す方法が欲しくて音声認識AIに興味を持ち、勉強会で教わった知識を実際にやってみた
  • 自身の備忘でかなり初心者向けの内容

Whisper とは

  • OpenAIが開発した汎用の音声認識モデル
  • 様々な言語について音声認識が出来る
  • 比較的簡単に実行ができる

Colab とは

  • Googleアカウントがあれば無料でGPU使えたりする
  • ブラウザ上でPython実行出来るのでここでWhisper使ってみる

実際にやってみる

Colabへ音声ファイルをアップロード

  • content配下に"test_1.mp3"をアップロード
  • 破損確認で音声ファイルを再生してみる
from IPython.display import Audio
Audio('test_1.mp3', autoplay=True)
  • githubから直接Whisperをインストール
!pip install git+https://github.com/openai/whisper.git
  • 関連ライブラリをインストール
import whisper
# モデル選択
model = whisper.load_model('tiny')
# transcribe (https://github.com/openai/whisper/blob/main/whisper/transcribe.py)
result = model.transcribe('test_1.mp3', verbose=True)
# 表示
print(result['text'])

結果
Detected language: Japanese
[00:00.000 --> 00:04.060] これを持ちまして、公園を終了させていただきます。
[00:04.060 --> 00:07.340] どなた様もお忘れ物のございませんよ。
[00:07.340 --> 00:11.060] 今一度手回り品を確かめください。
[00:11.060 --> 00:13.600] 本日はご来上いただきまして、
[00:13.600 --> 00:16.900] まことにありがとございました。
これを持ちまして、公園を終了させていただきます。どなた様もお忘れ物のございませんよ。今一度手回り品を確かめください。本日はご来上いただきまして、まことにありがとございました。

たどたどしい、、、
もう少し頑張って欲しいのでモデル性能向上+GPUで実験

GPU+largeで実行してみる

  • ランタイムのタイプを選択(T4.GPU)
  • 実行
model = whisper.load_model('large')
result = model.transcribe('test_1.mp3', verbose=True)
print(result['text'])

結果
Detected language: Japanese
[00:00.000 --> 00:03.440] これをもちまして公演を終了させていただきます。
[00:04.280 --> 00:06.860] どなた様もお忘れ物のございませんよう、
[00:07.460 --> 00:09.880] 今一度お手回り品をお確かめください。
[00:11.260 --> 00:14.900] 本日はご来場いただきまして誠にありがとうございました。
これをもちまして公演を終了させていただきます。どなた様もお忘れ物のございませんよう、今一度お手回り品をお確かめください。本日はご来場いただきまして誠にありがとうございました。

完璧!

所感

  • モデル性能を上げたりGPUを使えば精度はかなり上がりそうだが実行時間が長くなるのでトレードオフ
  • システム用語が飛び交う議事録とかでやってみたい
  • 長時間の会議を文字起こしした際、個人の判断ができるか、要約ができるかも実用性に関連しそうだなと感じた
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0