OpenAIの音声認識AI「Whisper」とは?使い方や文字起こしの精度を解説

AIは音声認識の分野でも目覚ましい発展を遂げており、音声をテキストに変換するWhisper(ウィスパー)もそのうちの1つです。

本記事では、Whisperを使った文字起こしの方法を紹介しています。簡単なものから応用したプログラムまで作成できる汎用性の高い技術なので、音声に関する解決策の1つとして参考にしてみてください。

監修者 workonbox_writer

IT関連の仕事をやっております。 様々な情報をまとめながら、よりよい記事になるよう取り組んでおります。 何卒宜しくお願い致します。

\エキスパートが回答!/
この記事に関する質問はこちら
記事に関するご質問以外にも、システム開発の依頼やAIの導入相談なども受け付けております。

    会社名必須
    必須
    必須
    Eメール必須
    電話番号必須
    ご依頼内容必須

    OpenAIの文字起こしAI Whisperとは

    Whisperは多言語に対応するオープンソースの音声認識モデルです。音声をテキストに変換したり、翻訳した音声を出力したりするタスクを得意とし、高い精度を持つことから文字起こしの背景技術に採用されています。

    開発元のOpenAIは近年のAI技術発展に大きく貢献する団体で、ChatGPTによるAIアシスタントや画像生成など様々な応用技術の研究開発を続けています。またGitHub上のコードやWhisperAPIを使うことによって、コストを安くしながら搭載することができます。

    以降ではWhisperの仕組みなどの概要や、開発の経緯について紹介していきます。

    Whisperでできること

    音声認識ができるWhisperでできることは以下の通りです。

    • 様々な言語に対応してテキストへ出力
    • 音声を様々な言語に変換
    • 雑音が多くても精度を上げて変換
    • 複数人の同時会話もそれぞれの内容を識別しながら出力
    • 字幕の自動生成

    複数の言語が飛び交う状態であっても、Whisperは識別しながらテキスト出力することができます。

    また、会議やインタビューで内容を分けなければならない時にも、Whisperは十分活用することができます。様々な目的でWhisperは十分利用できることでしょう。

    Whisperの仕組み

    高い精度を誇る音声認識モデルとして、Whisperは活用されています。WhisperはAPIを利用したり、GitHub上にあるコードを使って操作することが可能です。

    英語だけでなく日本語や中国語といった活用する人が多い言語以外にも、アラビア語など多様化も進んでいます。言語体系も大きく異なっていますが、しっかりと音声に対応してテキスト変換していきます。

    これはWebなどから大規模なデータを収集し、機械学習によって汎用性が高いモデルとなっているためです。言語が違うかどうか判断するだけでなく、アクセントや発生の違いにも対応しています。68万時間以上のデータを兼ね備えているので幅広く言語変換ができますが、精度の高いモデルはGPUやメモリも高性能なリソースが求められます。

    Whisperの利用料金

    2024年5月時点でのWhisperの料金体系を見ていくと、API経由では1分あたり0.006ドルかかります。

    日本円だと1円以下となりますが、長時間利用するとコストは大きくなることでしょう。一方でGoogle Colaboratoryで使おうとする時には、Whisperを一部無料で使うことができます。

    あらかじめ無料枠が設けられていますが、それ以上使うと有料になるので注意しなければなりません。

    プログラミングの知識などを備えていない時にはWhisperをGoogle Colaboratoryで活用するのがベストですが、長時間のデータには向いていません。

    無料枠の中で抑えられるならば、短時間のデータを中心に活用しましょう。

    Whisperの何がすごい?

    Whisperは様々なメリットが有り、活用しながらビジネスなどに利用するケースも増えています。

    音声認識モデルの中でも精度が高いだけでなく、多言語対応なども注目を集めています。文字起こしが普段から大変という人も活用するケースが増えていますが、処理速度の速さなども選ばれる理由となっています。

    様々なWhisperで得られるメリットについて、ここから代表的な5つのポイントともにチェックしていきましょう。

    高精度な音声認識

    Whisperは様々な言語の音声ファイルにも対応していますが、高精度な音声認識か可能です。

    動画に文字起こしを行って、様々な字幕をつけてみたい時などに活用することができます。様々な音声認識モデルがありますが、より精度を上げたい時にはGPUなどリソースも必要となります。スペックも併せて検討しながら、ベストな音声認識モデルを探すようにしましょう。

    多言語対応

    Webから収集した多くの情報を学習しながら、Whisperは様々な言語に対応しています。

    他の音声認識モデルではない強みとなっていますが、音声翻訳や言語識別とともに様々なタスクを学習することで実現しています。音声認識を様々な情報から行うため多言語対応を実現させ、多くの人が便利に利用できる状態としています。

    導入してからも日々様々な言語をWhisperでは学習しているので、新たな言語も対応できる時もあります。日々進化して多言語対応の幅が広がるのも、Whisperの大きな強みと言えるでしょう。

    処理速度の速さ

    Whisperは処理速度の速さもメリットとして注目されており、他の音声認識モデルよりも活用したいという声も多いです。

    そもそも音声や動画から発せられる言葉を抽出しながら、Whisperはテキストへ文字起こしを行っています。APIもHTTP経由で利用可能ですが、スムーズにレスポンスが行えるように配慮されています。

    これはBeam Searchと言われる探索範囲を上手に絞り込み最適な回答を生み出すアルゴリズムを搭載しているためです。音声から文字起こしを行う際に予想以上の処理速度の速さを実現しています。

    また搭載するGPUなどのリソースを上手に活用して処理しているので、より速度を向上させています。

    タスクに応じた指示(プロンプト)を出すことが可能

    タスクについて適切にプロンプトとして指示を出すことによって、より精度の高い文字起こしをWhisperで行うことができます。

    専門用語や発音だけでは意味合いが難しい単語も、細かくプロンプトを出してWhisperに覚えさせていきます。すると句読点の位置などを正確に把握できるようになったり、専門用語もWhisperで正しく表示させることが可能です。

    もしもWhisperで専門的な動画をアップしようとする時、文字起こしで専門用語が多く使われる時にはプロンプトで正確に処理する方法も検討すると良いでしょう。

    長時間の音声ファイルも対応

    動画などが長くなった時に文字起こしが大変な時もありますが、Whisperでは長時間の音声ファイルにも対応しています。

    これは25MB未満が条件となりますが、事前分割しながらWhisperで文字起こしを行うことができます。

    Pythonライブラリと組み合わせると、より長時間の音声ファイルも使えるようになります。様々なライブラリが展開されているので、一度探してWhisperと組み合わせるのも効果的です。

    Whisperの使い方(Google Colaboratory編)

    ここでは、WhisperとGoogle Colaboratory(以下、Colab)を使った文字起こしの流れを解説していきます。具体的には下記の手順で行います。

    • APIキーを取得
    • Colabのプロジェクト作成
    • 音声ファイルのアップロード
    • 文字起こし実行
    • 結果の調整
    • 出力結果の保存

    なお、Colabのプロジェクトは保存が可能で、他者からのアクセスの許可もできるため、必要に応じて共有しましょう。

    1. Whisperにログインする

    まずは、OpenAIのAPI管理サイトにアクセスします。アカウントがない場合はメールアドレスを入力して新規登録しましょう。

    入力したメールアドレス宛に下記のようなメールが届きますので、「Verify email address」をクリックして進みます。

    続いて氏名、生年月日を入力して登録を完了しましょう。

    API管理サイトにログインできたら、メニューの「API keys」を選び、「Start verification」をクリックしましょう。

    入力した電話番号宛にコードが送信されるので、画面上に入力します。

    続いて、APIキーの名前を入力して「Create secret key」をクリックしましょう。

    そうするとAPIキーが表示されるので、画面を閉じる前にコピーしてメモ帳などに保存しておきましょう。

    Whisper API側の設定はこれで完了です。全ての作業は無料で可能ですので、スムーズに進めていきましょう。

    2. 新しいプロジェクトを作成する

    Colabにアクセスし、「ノートブックを新規作成」からプロジェクトを作成しましょう。

    作成できたら、「編集」タブの「ノートブックの設定」を選びます。

    「T4 GPU」を選び、「保存」をクリックしましょう。

    設定を終えたら、「コード」をクリックして、APIキーを登録するために下記のコードを実行します。

    import os
    os.envirion[“OPENAI_API_KEY”] = “sk-xxxxxxxxxxxxxxxxxx”

    続けてOpenAIのライブラリをインストールするコマンドを実行しましょう。

    !pip install –upgrade openai

    インストールには少し時間がかかるので、しばらく待ちましょう。

    3. 音声ファイルをアップロードする

    Colabでファイルを扱う際には、Googleドライブにアップロードする必要があります。左のメニューからフォルダのアイコンを選び、アップロードのアイコンから音声ファイルをアップロードしましょう。

    ここでは、「sample.mp3」という名前の音声ファイルをアップロードしています。

    PythonからGoogleドライブのファイルを扱う際の使い方として、下記のコマンドを実行しましょう。

    from google.colab import drive
    drive.mount(‘/content’)

    これで指定したディレクトリ内のファイルを操作できるようになります。アクセス許可を求めるダイアログが出ることがあるので、承諾しましょう。

    4. 音声ファイルを再生して文字起こしを行う

    ここからは、いよいよ文字起こしの実行になります。下記のコードを実行してみましょう。

    コードが実行されると、すぐ下に音声から抽出されたテキストが表示されます。画像では一部だけですが、きれいな日本語で出力されているのがわかります。

    コードの内容は単純で、下記を順番に実行しています。

    • OpenAIライブラリを読み込む
    • 音声ファイルを読み込む
    • APIに音声ファイルを渡す
    • 出力結果を表示する

    5. 文字起こしの結果を確認し、必要に応じて修正する

    出力結果を修正したい場合は、APIから指示を与えることで微調整が可能です。例えば、下記の出力結果で太字の部分を修正したいとします。

    砂の上に寝そべって見たり、膝頭を波に打たせて、そこいらを跳ね回るのは愉快であった。 わたくしは、実に先生をこの雑踏の間に見つけ出したのである。 そのとき海岸には掛邪屋が二軒あった。わたくしはふとした弾みからその一軒のほうに生きなれていた。 長谷辺に大きな別荘を構えている人と違って、明々に専用の着替え場をこしらえていないここいらの秘書客には、ぜひともこうした共同着替所といったふうなものが必要なのであった。

    下記のコードのように、APIに対して修正したい単語の指示を追加しましょう。

    ここでの指示内容は単に、出力結果として期待する単語を羅列しているだけです。再度実行すると、下記のように修正されていることがわかります。

    砂の上に寝そべってみたり、膝頭を波に打たせて、そこいらをはねまわるのは愉快であった。 わたくしは、実に先生をこの雑踏の間に見つけ出したのである。 そのとき海岸には掛茶屋が二軒あった。わたくしはふとした弾みからその一軒のほうに生きなれていた。 長谷辺に大きな別荘を構えている人と違って、明々に専用の着替え場をこしらえていないここいらの避暑客には、ぜひともこうした共同着替所といったふうなものが必要なのであった。

    このように指示を与えることで、漢字を修正したり、特定の位置に句読点をつけたり、本来は除外されるつなぎ言葉を含めたりすることが可能です。

    6. 文字起こし結果を保存またはエクスポートする

    これまではColab上のコンソールに文字起こしの結果を表示していましたが、ファイルで出力できたほうが使い勝手が良いでしょう。下記のコマンドでは、結果のテキストがGoogleドライブ上にファイルとして出力されます。

    実行が完了すると、音声ファイルをアップロードしたディレクトリに「output.txt」という名前のファイルが作成されます。なお、文字起こし結果は1行でまとめて出力されるため、1文ごとに改行されるようにPythonプログラムを修正しても良いでしょう。

    また、音声ファイルと結果のテキストファイルは固定の名前を付けているので、Colab側でフォーム入力できるように改良する余地もあります。

    7. 必要に応じてプロジェクトを共有する

    Colabのプロジェクトは外部のユーザーとの共有が可能です。Colab画面右上にある「共有」から設定できます。

    アクセス可能なユーザーを追加したり、アクセス権限を変更したりできます。

    設定ができたら「リンクをコピー」から、URLをコピーして共有しましょう。

    ただし、Colabの無料プランはコンピュータリソースの利用にかなり制限が設けられているため、何度も使用することはできません。特にGPUが使用できる時間は短いため、お試し程度に考えておきましょう。

    Whisperの使い方(API編)

    Whisperの使い方(API編)

    音声からテキストへ出力するまでWhisper APIで行うことができますが、様々な手順を踏んで搭載することになります。オープンソースで提供されている中で、精度が高いモデルが提供されています。APIでも十分活用でき、レスポンスも非常に早いです。

    音声から文字起こしを行ったり、翻訳もWhisper APIではタスクとしてサポートしています。多言語にも対応しているので、安心して利用できます。ChatGPTも提供しているOpenAIでアカウント作成からスタートしていき、Whisper APIを搭載していきます。

    ここからはWhisper APIをどうやって搭載していくか、手続きなども含めて手順を見ていきましょう。使い方も正しく理解して、Whisper APIで精度の高い文字起こしを実現しましょう。

    1. アカウント登録

    まずは、OpenAIのアカウント登録を済ませる必要があります。アカウント登録の具体的な手順は「Whisperを活用した文字起こしの手順と流れ」を参照してください。

    2. APIキーの取得

    OpenAIのAPI管理サイトにログインし、メニューの「API keys」から現在登録中のAPIキーを確認できます。

    APIキーは「SECRET KEY」に記載されていますが、全部を確認することはできません。そのため、APIキーを忘れてしまった場合は、再度「Create new secret key」から作成し直しましょう。作成方法は「Whisperを活用した文字起こしの手順と流れ」を参照してください。

    3.APIへのアクセス

    APIキーを正しく導入することができれば、問題なくアクセスして活用することができます。APIはPython用のライブラリからアクセスしたり、対象のURLに直接リクエストを送信したりすることで利用できるようになります。

    ただしアクセス時には、APIキーを指定する必要があります。エラーが発生した時にはAPIキーを改めて確認し、正しく読み込めるように設定を行うようにしましょう。

    Whisperの使い方(Pythonライブラリ編)

    Whisperの音声認識技術とモデル

    WhisperはOpenAIが提供するAPIサービスから利用できます。GitHubにあるソースコードでも同様の機能を実装できますが、APIを経由することでサーバーリソースを用意せずに利用可能です。現時点では各モデルのバージョンに違いはありませんが、今後更新される可能性もあります。APIを利用する一番のメリットは、OpenAIの大規模なインフラを活用した音声認識モデルを使って、簡単にアプリケーションに組み込めるところにあります。アプリに組み込めれば、より柔軟に活用できます。

    WhisperはPythonのライブラリ経由で利用できます。他にもChatGPTに使用される言語モデルのAPIも利用可能です。ただし、各APIごとに定められた料金プランに従って課金されるため注意しましょう。

    APIを使った文字起こしの手順は下記の通りです。

    1. Pythonのインストール

    Pythonの実行環境がない場合は、公式サイトからダウンロードしてインストールしましょう。なお、2024年3月時点ではPython3.7.1が必要になります。

    2. OpenAIライブラリのインストール

    Python用のOpenAIライブラリをインストールしましょう。インストールはpipコマンドで行えます。

    pip install --upgrade openai

    3. APIキーの設定

    Pythonプログラムを配置するディレクトリに「.env」という名前のファイルを作成し、下記を記述します。

    OPENAI_API_KEY=APIキー

    4. Whisper APIの利用

    Whisper APIはPythonプログラムから利用できます。例えば、下記のようなコードで音声ファイルからテキストの抽出が可能です。

     

    from openai import OpenAI
    client = OpenAI()

    audio_file = open(“/path/to/file/speech.mp3”, “rb”)
    transcription = client.audio.transcriptions.create(
    model=”whisper-1″,
    file=audio_file,
    response_format=”text”
    )
    print(transcription.text)

     

    APIの実行結果としてテキストが返ります。コード上では使用するモデルを指定していますが、現時点では選択肢がなく「whisper-1」(Whisper V2)の1つだけです。

    OpenAIがWhisperを 開発した経緯

    高い精度の機械学習モデルを作成するには、有益な学習データが大量に必要とされます。整理されていないデータは集めやすいですが、有用な特徴やデータの有効性を見分けることが難しく、学習データとして用いるには認識精度や汎用化において問題がありました。また、学習データに意味付けすれば学習効率が高まる反面、品質の高い充分な量のデータを用意するのが困難な状態でした。

    最近の研究では、学習データの量と質のバランスを取った手法が、モデルの汎化に対して有効であると実証されてきたため、さらなる精度向上を図るためWhisperでも取り入れられました。ただし、Whisperは他の汎用モデルのように、微調整を加えることを前提には考えられいません。

    Whisperのゴールは、後から個別に学習させる必要のない堅牢な音声認識モデルです。未知の音声データに幅広く対応できる汎用性の高い仕組みを目指しています

    まとめ:Whisperは汎用性の高い音声認識モデル

    Whisperは、文字起こしに最適な高精度の音声認識モデルです。利用方法はAPIとソースコードの2種類で、次のように使い分けできます。

    • 簡単に音声認識モデルにアクセスしたいならAPI
    • 独自の音声認識アプリケーションを開発するならソースコード

    オープンソースの音声認識モデルなのでソースコードは無料で利用できますが、APIはサービスをすぐに利用できる代わりに有償で、音声ファイルさえあれば難しいプログラムを書かずに文字起こしが可能です。

    また、お試しだけならGoogle Colab上でWhisperのソースコードを展開すれば、無償で利用可能です。なお、どちらの方法でも既存のアプリケーションに音声処理を組み込むこともでき、リアルタイム翻訳、字幕付けなどの機能開発に利用できます。

    Whisperや音声認識について導入したいと悩んでいて、ご相談やご依頼があれば株式会社Jiteraにお問い合わせください。お悩みごとに対する適切な解決法をご提案いたします。

    株式会社Jitera

    例:開発手順、ツール、プロンプト

    メルマガ登録

    社内で話題になった「生成AIに関するニュース」をどこよりも早くお届けします。