はじめに
さて今回は、faster-whisperを使った音声データの文字起こしについてまとめたいとい思います。
利用する環境はGoogle Colaboratory(Google Colab)です。誰もが簡単に無料で利用できるので超オススメです!
ちなみに以前、whisperを使った音声文字起こしについてもまとめています。
そこでは、画像付きでGoogle Colaboratoryの使い方もまとめていますので、より詳細な使い方を知りたい方はまずそちらをチェックしてください。
whisperを使った音声文字起こしはこちら!
faster-whisperとは
まずは簡単に、「faster-whisper」についてまとめておきましょう。
基本的には、whisperの処理速度が速い版と覚えておいてもらえればOKです。
faster-whisperは、音声認識モデルである「whisper」の改良版で、特に処理速度の向上を目指して設計されています。このモデルは、OpenAIによって開発され、主に音声をテキストに変換するタスクに使用されます。
同じ精度で、メモリ使用量を抑えつつ、処理速度は最大4倍高速になったという・・・。めちゃくちゃスゴくないですか??
より詳しく知りたい方は、以下をチェックしてくださいね。
音声文字起こし手順
さて、それでは本題です。
Google Colaboratory(Google Colab)を使ってWhisperをインストールし、音声文字起こしを試してみましょう。
細かい手順は、以前whisperを使った時と同じなので割愛しますね。画像付きで詳細を知りたい方は以前の記事をご確認ください!
1. Google Colaboratory(Google Colab)にアクセス
まずはGoogle Colaboratory(Google Colab)にアクセスしましょう。以下からアクセス可能です。
2. ノートブックを新規作成
アクセスできたらまずはノートブックを新規作成しましょう。
3. ランタイムのタイプ変更
ノートブックが出来上がったらまずはランタイムのタイプを変更しましょう。
何をやっているか簡単に説明すると、処理を実行するリソースを変更する手順となります。
デフォルトでは「CPU」を利用して処理する設定となっていますので、「GPU」で処理する設定に変更しましょう。
設定を「GPU」にすることで処理速度が格段にアップしますので、必ず実行しておきましょう。
画像の通り、「ランタイム」タブから「ランタイムのタイプを変更」を選択しましょう。「ハードウェア アクセラレータ」がデフォルトで「CPU」になっているはずですので、「T4 GPU」に変更して保存ボタンを押下しましょう。
4. ランタイムに接続
「T4 GPU」に変更できたらランタイムに接続しましょう。右上の「接続 T4」を押下です。
上記まではwhisperを使うときと同じ手順、というかただのGoogle Colaboratoryの使い方なのでサクサクっと進んでください。
以下からは必要なコードを実行していくだけです。
5. faster-whisperのインストール
接続が完了したらfaster-whisperをインストールします。以下のコードをコード入力欄(セル)に入力し、実行ボタン(▷)を押下しましょう。
!pip install faster-whisper
処理は数十秒ほどで終わると思います。終わったら完了マークが出ますので、次の手順に進みましょう。
6. faster-whisperのインポート
Whisperのインストールが完了したら、インポートも実行しましょう。
左上の「+コード」ボタンを押下することで、コード入力欄を表示させることができます。
以下のコードをコード入力欄(セル)に入力し、実行しましょう。
from faster_whisper import WhisperModel
7. 音声ファイルのアップロード
次に、文字起こしをしたい音声ファイルをアップロードしましょう。
「content」フォルダ内にファイルをドラック&ドロップしてアップロードします。
「content」フォルダの開き方は、画面左のファイルアイコンを押下し、「..」(※1つ上のレベルに移動)を押下すると出てきます。
ちなみに今回は、テスト用に適当な音声データを用意しました。
以下の文章を作り、「音読さん」という音声読み上げソフトに入れて、音声データを作成しています。
文章はGPT-4oに作らせています。
「小説家になった気分で、男性2人と女性1人が趣味について会話している文章を作成してください。」とお願いしました。
面倒なところは全部生成AIにお願いできますね~。余談でした・・・。
秋の夕暮れ、赤みがかった空がゆっくりと夜の帳へと変わりつつある頃、喫茶店の一角で三人が向かい合って座っていた。店内は木のぬくもりに包まれ、カウンターからはコーヒーの香ばしい香りが漂っている。カップの音や、たまに聞こえるささやかな音楽が心地よい。テーブルの上には、すでに冷めかけた飲み物が置かれていた。
「で、趣味って言えばさ、最近またギターを始めたんだよ。」
そう言って、黒髪の男性、翔太が笑顔を見せた。彼は無造作にセットされた髪と、シンプルなカジュアルウェアが特徴の、どこか落ち着きのある人物だ。
「おお、また?前に一度やめたって言ってなかったっけ?」
向かいに座るのは、背が高く、どこか冷静な雰囲気を漂わせた男性、陽介だ。彼はメガネ越しに翔太を見つめ、軽く驚いた表情を浮かべた。
「そうなんだよ。仕事が忙しくて、弾く時間がなくなってさ。でも最近、ちょっとしたきっかけでまた触れるようになってね。」
翔太は照れくさそうに笑いながら、空にしたカップを手に取った。
「きっかけって?」
今度は女性の声が響いた。三人の中で唯一の女性、美穂が柔らかな口調で尋ねる。彼女は短めのボブヘアに、小柄で可愛らしいファッションが特徴的だ。彼女の眼差しは興味深げで、翔太の話に自然と引き込まれている。
「うーん、単純にYouTubeで昔好きだったバンドの動画を見つけてね。それで懐かしくなってさ、ギターをまた弾きたくなったんだ。」
翔太の口から出たその言葉に、美穂と陽介が軽くうなずく。
「音楽って不思議だよね。昔の曲を聴くと、その頃の自分に戻ったような気がするっていうか。」
美穂が頷きながら、どこか遠くを見つめるような表情で呟く。
「美穂も音楽やってるんだっけ?」
陽介が訊ねると、美穂は小さく笑った。
「うん、ピアノをちょっとね。でも、最近は全然弾いてないけど…。あ、でも聴くのは大好き。特にクラシック音楽。なんか、心が落ち着くんだよね。」
「クラシックか。確かに落ち着くよな。俺も仕事の合間にクラシックをかけたりすることあるけど、全然違うよ。集中力が変わるっていうか。」
陽介は静かに頷き、何かを思い出すように言葉を続けた。
「俺はゲームかな、趣味は。最近は特にレトロゲームにハマってるんだ。」
「レトロゲーム?ファミコンとかスーファミのやつ?」
翔太が少し驚いたように言う。
「そうそう。懐かしくてさ。やっぱりシンプルなルールがいいんだよね。最近のゲームは映像もリアルだし、ストーリーも凝ってるけど、なんか疲れちゃうんだ。レトロゲームの方が、ゲーム本来の楽しさが詰まってる気がするんだよ。」
陽介の言葉に、翔太と美穂は顔を見合わせ、少し笑いを浮かべた。
「確かにね、シンプルな方が時々楽しいこともあるよな。特に仕事が忙しいと、あんまり考えずに楽しめるものがいいよね。」
翔太が同意し、美穂も頷く。
「私、ゲームはあんまりやらないけど、レトロゲームならちょっと興味あるかも。操作も簡単そうだし。」
美穂はそう言いながら、陽介に少し興味深そうな目を向ける。
「今度一緒にやるか?ファミコン持ってるから、何か簡単なやつでさ。」
陽介が提案すると、美穂は楽しそうに笑った。
「いいね、それ。じゃあ、私がピアノで何か弾いてあげるから、その代わりにゲーム教えて。」
「お、じゃあ俺はギター持ってくるから、みんなでセッションでもするか?」
翔太が冗談交じりに言うと、三人は大笑いした。
「でも、なんかいいな、それ。音楽とゲーム、ちょっと古いものに触れてる感じがして。」
美穂がしみじみとした口調で言うと、陽介が頷きながら答える。
「そうだな。結局、趣味ってのは、自分が楽しいって思えることが一番だよな。今の時代、何かに追われてる感じがするけど、こういう風にのんびりできる時間って大事だと思う。」
「本当、それだよね。なんか、大人になると趣味を楽しむ時間が少なくなってきた気がする。仕事が忙しくて、いつの間にか自分のための時間がなくなっちゃうんだよ。」
翔太が少し考え込むように言葉を紡ぎ出す。
「そうそう。でも、だからこそ、趣味を持ってることって大事なんだろうな。自分だけの時間、自分のための楽しみを持つことで、ストレスから解放されるっていうか。」
美穂がその言葉に共感し、静かに頷く。
「うん、だからこそ、俺はこれからもギターを弾き続けるよ。たとえ毎日じゃなくても、週に一回でも、自分が楽しいって思える時間を持ちたいんだ。」
翔太が力強く言葉を締めると、陽介も「それ、いい考えだな」と同意する。
「俺もゲームを続けるよ。結局、楽しんでやることが一番だからな。何かを無理にやるんじゃなくて、自然に手に取れるものがいいんだよ。」
「じゃあ、私は…もう少しピアノを弾く時間を増やそうかな。最近、本当に触ってなかったから。今度、みんなで集まる時は、私がBGMを担当するよ。」
美穂の言葉に、翔太と陽介は笑顔を見せた。
「それじゃ、次回の集まりは、みんなの趣味を持ち寄ってやるか!」
翔太の冗談混じりの提案に、三人の笑い声が店内に響いた。
それぞれが自分の趣味について語り合い、改めてその大切さを確認した夜。趣味とは、ただの楽しみ以上に、心を豊かにし、日々の忙しさから解放してくれるものであることを三人は感じていた。
そして、そんな趣味を共有できる友人がいることが、何よりも幸せなのだと、静かに店を後にする頃には、皆が心の中で思っていた。
空はすっかり夜に染まり、街には灯りがともり始めていた。三人はまた次の機会に会う約束をし、それぞれの帰路についた。
8. 音声文字起こしの実行
音声ファイルのアップロードができたら下準備は終了です。
音声文字起こしを実行してみましょう。
以下のコードをコード入力欄(セル)に入力し、実行してください。
model_size = "large-v3" # モデルはlarge-v3を使用
# ↓必要に応じて適当なものに切り替えてください。
# Run on GPU with FP16
model = WhisperModel(model_size, device="cuda", compute_type="float16")
# or run on GPU with INT8
# model = WhisperModel(model_size, device="cuda", compute_type="int8_float16")
# or run on CPU with INT8
# model = WhisperModel(model_size, device="cpu", compute_type="int8")
# ↑必要に応じて適当なものに切り替えてください。
segments, info = model.transcribe("filename.mp3", beam_size=5) # "filename.mp3"はインプットしたファイル名を入力してください。私の場合は"test1.mp3"としていました。
print("Detected language '%s' with probability %f" % (info.language, info.language_probability))
# 出力形式はご自由に
for segment in segments:
print(segment.text)
実行が完了すると、テキストデータが出力されます。
結果は以下の通りです。まぁ細かいところは誤字等ありますが、完璧と言っても差し支えない程の精度ではないでしょうか?
秋の夕暮れ赤みがかった空がゆっくりと夜の蝶へと変わりつつある頃 喫茶店の一角で3人が向かい合って座っていた
店内は木のぬくもりに包まれカウンターからはコーヒーの香ばしい香りが漂っている カップの音やたまに聞こえるささやかな音楽が心地よい
テーブルの上にはすでに冷めかけた飲み物が置かれていた で趣味って言えばさ最近またギターを始めたんだよ
そう言って黒髪の男性翔太が笑顔を見せた 彼は無造作にセットされた髪とシンプルなカジュアルウェアが特徴のどこか落ち着きのある
人物だ おおまた前に一度やめたって言ってなかったっけ
向かいに座るのは背が高く
どこか冷静な雰囲気を漂わせた男性陽介だ 彼はメガネ越しに翔太を見つめ軽く驚いた表情を浮かべた
そうなんだよ 仕事が忙しくて引く時間がなくなってさ
でも最近ちょっとしたきっかけでまた触れるようになってね 翔太は照れくさそうに笑いながら空にしたカップを手に取った
きっかけって 今度は女性の声が響き
た 3人の中で唯一の女性
美穂が柔らかな口調で尋ねる 彼女は短めのボブヘアに小柄で可愛らしいファッションが特徴的だ
彼女の眼差しは興味深げで翔太の話に自然と引き込まれている うーん単純に youtube で昔好きだったバンドの動画を見つけてね
それで懐かしくなってさギターをまた弾きたくなったんだ 翔太の口から
たその言葉に美穂と洋介が軽くうなずく 音楽って不思議だよね
昔の曲を聞くとその頃の自分に戻ったような気がするっていうか 美穂がうなずきながらどこか遠くを見つめるような表情でつぶやく
美穂も音楽やってるんだっけ 洋介が尋ねると美穂は小さく笑った
うんピアノをちょっとね
あでも聞くのは大好き 特にクラシック音楽
なんか心が落ち着くんだよね クラシックか
確かに落ち着くよな 俺も仕事の合間にクラシックをかけたりすることあるけど全然違うよ
集中力が変わるっていうか 洋介は静かにうなずき何かを思い出すように言葉を続けた
俺はゲームかな
最近は特にレトロゲームにハマってるんだ レトロゲームファミコンとかスーファミのやつ
翔太が少し驚いたように言う そうそう
懐かしくてさ やっぱりシンプルなルールがいいんだよね
最近のゲームは映像もリアルだしストーリーも凝ってるけどなんか疲れちゃうんだ レトロゲームの方がゲーム本来の楽しさが詰まってる気がするんだよ
洋介の言葉に翔太と美穂は顔を見合わせ少し笑いを浮かべた 確かにねシンプルな方が時々楽しいこともあるよな
特に仕事が忙しいとあんまり考えずに楽しめるものがいいよね 翔太が同意し美穂もうなずく
私ゲームはあんまりやらないけどレトロゲームならちょっと興味あるかも 操作も簡単そうだし
美穂はそう言いながら洋介に少し興味深そうな目を向ける 今度一緒にやるかファミコン持ってるから何か簡単なやつでさ
洋介が提案すると美穂は楽しそうに笑った いいねそれ
じゃあ私がピアノで何か弾いてあげるからその代わりにゲーム教えて おじゃあ俺はギター持ってくるからみんなでセッションでもするか
翔太が冗談まじりに言うと3人は大笑いした でもなんかいいなそれ
音楽とゲームちょっと古いものに触れてる感じがして 美穂がしみじみとした口調で言うと洋介がうなずきながら答える
そうだな 結局趣味ってのは自分が楽しいって思えることが一番だよな
今の時代何かに追われてる感じがするけど こういう風に飲んでるんだよな
今の時代何かに追われてる感じがするけど こういう風に飲んでる感じがするけど こういう風に飲んでる感じがするけど
のんびりできる時間って大事だと思う 本当それだよね
なんか大人になると趣味を楽しむ時間が少なくなってきた気がする 仕事が忙しくていつの間にか自分のための時間がなくなっちゃうんだよ
翔太が少し考え込むように言葉を紡ぎ出す そうそう
でもだからこそ趣味を持ってることって大事なんだろうな 自分だけの時間
自分だけの時間自分のための時間 自分だけの時間自分のための時間 自分だけの時間自分のための時間
自分だけの時間自分のための楽しみを持つことでストレスから解放されるっていうか 美穂がその言葉に共感し静かにうなずく
うんだからこそ俺はこれからもギターを弾き続けるよ たとえ毎日じゃなくても週に1回でも自分が楽しいって思える時間を持ちたいんだ
翔太が力強く言葉を締めると陽介もそれいい考えだなと同意する 俺もゲームを続けるよ
結局楽しんでやることが一番だからな 何かを無理にやるんじゃなくて自然に手に取れるものがいいんだよ
じゃあ私はもう少しピアノを弾く時間を増やそうかな 最近本当に触ってなかったから
今度みんなで集まるときは私が bgm を担当するよ 美穂の言葉に翔太と陽介は笑顔を見せた
それじゃ次回の集まりは
みんなの趣味を持ち寄ってやるか 翔太の冗談混じりの提案に3人の笑い声が店内に響いた
それぞれが自分の趣味について語り合い改めてその大切さを確認した夜 趣味とはただの楽しみ以上に心を豊かにし日々の忙しさから解放してくれるものであること
3人は感じていた そしてそんな趣味を共有できる友人がいることが
3人よりも幸せなのだと静かに店を後にする頃にはみんなが心の中で思っていた 空はすっかり夜に染まり街には明かりが灯り始めていた
3人はまた次の機会に会う約束をしそれぞれのキロについた
ちなみに本記事を書くためにテストで実行していた音声ファイルは7分30秒程でしたが、1分程で処理が完了しました。
whisperを使って同じことを実行してみたら、3分かかりましたので、単純計算、約3倍の速度になっていることが分かりましたね。
とんでもなく早くなっていて感動です~。
最後に
さて今回は、faster-whisperを使った音声データの文字起こしについてまとめました。
かなり高速に、かつ高精度な文字起こしが無料で利用できるなんてありがたいですよね。
生成AIと組み合わせれば、単純な文字起こしだけでなく、さらに色々な用途が期待できそうです。
使い方は無限大ですので、是非とも活用していきましょう!!
分かっているとは思いますが、情報漏洩等には注意ですからね・・・。
以上!
その他の勉強記事も是非!
コメント