ChatGPT×Whisperで音声ファイルの内容を要約する方法

  • URLをコピーしました!

※本ページはアフィリエイト広告を利用しています

今回はOpenAIがAPIを提供している音声認識システム、WhisperとChatGPTを組み合わせたシステムを紹介します。

Whisperは音声ファイルを自動で文字起こしすることが可能です。Whisperで文字列に変換したデータを、ChatGPTで要約するさせることで、音声ファイルの内容を短時間で確認することができます。

Whisperを使うと音声ファイルを文章データに変換できる。

短時間でのセミナー講座の受講や会議の議事録作成など、様々なシーンで活用できます。一連の処理を自動で実行するためのPythonコードを紹介しますので、ぜひ試してみてください。

また、当ブログ内のChatGPTについての記事を以下のページでまとめていますので、あわせてご覧ください。

目次

ChatGPTとは

ChatGPTは、OpenAIが提供する自然言語生成モデルです。GPT(Generative Pre-training Transformer)と呼ばれるモデルのアーキテクチャを採用しています。

GPTは、Transformerと呼ばれるニューラルネットワークを使用して、文書や言語処理タスクでのテキスト生成を行うモデルです。GPTは、大量のテキストデータを学習し、そのデータをもとに新しい文章を生成することができます。

ChatGPTは、GPTをもとにしたモデルであり、対話型システムやチャットボットなどで使われることを想定して開発されています。対話を続けることができるようになっており、ユーザーが入力するテキストに対して、自然で返答ができるようになっています。

OpenAI APIキーの取得

ChatGPTと後程、紹介するWhisperを使用するためには、OpenAIのAPIキーを取得する必要があります。取得の手順については以下の記事で解説しています。

オライリー・ジャパン
¥3,960 (2024/04/20 21:00時点 | Amazon調べ)

Whisperとは

Whisperは、OpenAIが開発した自動音声認識(ASR)システムです。APIを通じて提供され、ユーザーが簡単に音声データをテキストに変換できるようになっています。Whisperは、大量の音声データから学習したニューラルネットワークに基づいており、その性能は継続的に向上しています。

Whisperの主な特徴
  • 複数の言語での音声認識に対応しています。これにより、世界中のユーザーがさまざまな言語で音声データをテキストに変換できます。
  • 最先端のニューラルネットワーク技術を利用しており、非常に高い音声認識精度を実現しています。これにより、音声データを効率的にテキストに変換することができます。
  • Whisperはさまざまな用途で活用されています。例えば、音声アシスタント、音声入力システム、会議録の自動書き起こし、教育用途、オーディオブックの字幕作成、言語翻訳など、多岐にわたります。

APIの料金

Whisper APIを利用するためには、OpenAIのAPIキーが必要です。APIキーを取得したら、Pythonなどのププログラムでリクエストを送信し、音声データをテキストに変換できます。また、OpenAIはAPIの利用料金を設定しており、使用量に応じて課金されます。

料金については以下のように記載されています。

Whisper, the speech-to-text model we open-sourced in September 2022, has received immense praise from the developer community but can also be hard to run. We’ve now made the large-v2 model available through our API, which gives convenient on-demand access priced at $0.006 / minute. In addition, our highly-optimized serving stack ensures faster performance compared to other services.

2023年4月現在、読み込む音声ファイルの長さに応じて1分あたり$0.006という料金が設定されています。

料金は変更される可能性がありますので、OpenAIの公式サイトで確認してください。

公式ドキュメント

Whisperに関する公式ドキュメントは以下の通りです。

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

必要なライブラリをインストールします。コマンドプロンプトで以下のコマンドを実行してください。

pip install openai

作成したPythonコード

ここからは実際に文字起こしから要約までを実行するためのPythonコードの実装方法を解説します。

コード解説

各種設定

「MOV_FILE_PATH」に要約したい音声ファイルのパスを指定してください。
「PROMPT_BASE」にどのような形で要約を出力してほしいかを指定してください。

openai.api_key = "(ここにOpenAIのAPIキーを設定)" #APIキー
MOV_FILE_PATH = "rd684.mp3" #読み込む音声ファイル
PROMPT_BASE = "次の文章を200字程度で要約してください。" #要約の仕方を指示
GPT_MODEL ="gpt-3.5-turbo" #使用する言語モデル

Whisperによる文字起こし

Whisperを使って音声ファイルから文章データを生成するには、以下の2行のコードを実行するだけです。
音声ファイルを「openai.Audio.translate」メソッドに渡すと、transcriptに文字列データが返されます。

audio_file= open(MOV_FILE_PATH, "rb")
transcript = openai.Audio.translate("whisper-1", audio_file)

ChatGPTのプロンプトを作成

出力形式を指定するプロンプト「PROMPT_BASE」と、WhisperのAPIより返された文字列データを結合して、ChatGPTに入力するプロンプトとします。

#ChatGPTプロンプトを作成
prompt = PROMPT_BASE + transcript.text

全体のPythonコード

以下が作成した全体のPythonコードです。
音声ファイル名は、必要に応じて変更してください。

import openai

openai.api_key = "(ここにOpenAIのAPIキーを設定)" #APIキー
MOV_FILE_PATH = "rd684.mp3" #読み込む音声ファイル
PROMPT_BASE = "次の文章を200字程度で要約してください。" #要約の仕方を指示
GPT_MODEL ="gpt-3.5-turbo"

#動画、オーディオファイルを開く
audio_file = open(MOV_FILE_PATH, "rb")

#Whisperで音声から文字お越し
transcript  = openai.Audio.transcribe("whisper-1", audio_file)


#ChatGPTで要約を作成
#ChatGPTプロンプトを作成
prompt = PROMPT_BASE + transcript.text

#推論を実行
response = openai.ChatCompletion.create(
  model=GPT_MODEL,
  messages=[
        {"role": "user", "content": prompt}
    ]
)

#ChatGPTの回答を出力
print(response["choices"][0]["message"]["content"])

実行結果

先ほどの作成したPythonコードが正しく動作するかを確認します。
音声ファイルをWhisperで文字列データに変換し、それをChatGPTに入力して要約文を作成します。

音声素材

テストで使用する音声データは青空文庫の朗読サイト、「青空朗読」で公開されているものを使用します。

今回は、芥川 龍之介の「魚河岸」を使用します。音声ファイルの時間も11分程度と、テストでは丁度よい長さです。

Whisperによる文字起こしの結果

まずは「魚河岸」の音声ファイルをWhisperのAPIに入力し、文字起こしを行います。Whisperで生成されたデータは以下となります。

あくたがわりゅうのすけさく うおがし 去年の春の夜といってもまだ風の 寒い月のさえた夜の九時ごろ やすきちは三人の友達とうおがし の往来を歩いていた 三人の友達とは俳人の路西 洋画家の風中 薪江氏の除丹 三人とも
本名は明かさないがその 道では知られた腕っこきである ことに路西は年笠でもあり 新慶行の俳人としては都に名を 馳せた男だった 我々は皆酔っていた もっとも風中と靖吉とは外子 除丹は名代の主号だったから三人 は普段と変わらなかった ただ路西はどうかすると足元も 少々危なかった 我々は路西を仲にしながら生臭い 月明かりの吹かれる通りを 日本橋の方へ歩いて行った 路西は喫水の江戸っ子だった 曹操夫は食産や文帳と こういうの扱った人である いえも菓子の丸生といえば あの界隈では知らぬものはない それを路西はずっと前から 家業はほとんど人任せに従り 自分は三夜の路地の奥に 食と書と転穀等を楽しんでいた だから路西には我々にない どこかいなせな風格があった 下町片城よりは殿房な 山の手にはもちろん縁の遠い いわば菓子のマグロの寿司と 一味相通ずる何者かがあった 路西はさも邪魔そうに時々街頭 の袖をはねながら 快活に我々と話し続けた 女譚は静かに笑い笑い話の合図 を打っていた そのうちに我々はいつのまにか 菓子のとっつきへ来てしまった このまま菓子を出抜けるのは みんな妙に物足りなかった するとそこに養殖屋が一見 片側を照らした月明かりに白い のれんをたらしていた この店の噂は靖吉さえも何度か 聞かされたことがあった 入ろうか 入ってもいいな そんなことを言い合ううちに我々 はもう風中を先に 狭い店の中へなだれ込んでいた 店の中には客が二人 細長い卓に向かっていた 客の一人は菓子の若い衆 もう一人はどこかの食行らしかった 我々は二人ずつ向かい合いに 同じ卓に割り込ませてもらった それから平貝のフライを魚に ちびちび正宗をなめ始めた もちろん下骨の風中や靖吉は 二つとちょくは 重ねなかった その代わり料理を平げさすと 二人ともなかなか健坦だった この店は卓も腰掛もニスを塗らない 白木だった おまけに店を加工者は江戸伝来の 吉津だった だから洋食が食っていてもほとんど 洋食屋とは思われなかった 風中はあつらえた美不敵が来る とこれは切り身じゃないかと言った りした 序端はナイフの切れるのに大いに 敬意を表していた 靖吉はまた伝統の明るいのがこういう 場所だけにありがたかった 路西も路西は土地っこだから何も 珍しくはないらしかった しか取口棒を網だにしたまま序端 と研修を重ねては相変わらず快活 に喋っていた するとその最中に中折れ棒をかぶ った客が一人ぬとのれんをくぐって 来た 客は街頭の毛皮の衿に太った頬をうずめながら 見るというよりはにらむように 狭い店の中へ目をやった それから一言の挨拶もせず序端 と若い衆との間の席へ大きい体 を割り込ませた 靖吉はライスカレーをすくいながら いやなやつだなと思っていた これが泉強化の小説だと人気を 喜ぶべき芸者か何かに退治られる やつだがと思っていた しかしまた現代の日本橋は到底 強化の小説のように動きっこはない とも思っていた 客は注文を通した後王兵に煙草 を吹かし始めた その姿は見れば見るほど堅木役 の寸法にはまっていた 油ぎったあから顔はもちろん大島 の羽織認めになる指輪 ことごとく肩を入れなかった 靖吉はいよいよ当てられたから この客の存在を忘れたさに隣にいる 路西へ話しかけた が路西はうんとかえーとかいい 加減な返事しかしてくれなかった のみならず彼も当てられたのか 伝統の光に背きながらわざと取り 打ち棒をまぶかにしていた 靖吉はやむを得ず風中や女譚と 食い物のことなどを話し合った しかし話は弾まなかった この太った客の出現以来我々三人 の心持ちに妙な狂いのできたこと はどうにも仕方のない事実だった 客は注文のフライが来ると正宗 の瓶を取り上げたそうして直へ 継ごうとした その時誰か横合い から 高山とはっきり呼んだものがあった 客は明らかにびっくりしたしかも その驚いた顔は声の主を見たと思う とたちまち当枠の色に変り出した いやこりゃ旦那でしたか 客は中折れ棒を脱ぎながら何度も 声の主にお辞儀を した 声の主は廃人の路西貸野丸生の旦那 だった しばらくだね 路西は涼しい顔をしながら直を口 へ持っていった その直が空になると客はすかさず 路西の直へ客自身の瓶の酒をつい だ それから畠にはおかしいほど路西 の起源をうかがい出した 京歌の小説は死んではいない 少なくとも東京の魚菓子にはいまだに あの通りの事件も起るのである しかし養殖屋の外へ出た時 安吉の心は沈んでいた 安吉はもちろん高山には何の同情 も持たなかった その上路西の話によると客は人格 も悪いらしかった がそれにもかかわらず妙に陽気 にはなれなかった 安吉の書斎の机の上には読みかけ た露出風光の語録がある 安吉は月明かりを踏みながらいつか そんなことを考えていた 最初11年7月

ChatGPTで要約された出力結果

続いて先ほどの文字起こししたデータを、200文字程度に要約するようChatGPTに指示し、出力された要約文は以下となります。

春の夜、俳人の路西と洋画家の風中、薪江氏の除丹が三人で歩いていた。彼らは皆酔っていたが、路西は足元が少し危なかった。彼らは菓子の店へ入り、客の一人が入ってきたが、周りの雰囲気が悪くなった。しかし、彼が旦那であることが判明し、
その後は楽しい時間を過ごした。ただ、終わった後、安吉は心が沈んでいた。彼は高山に同情する気持ちも持たず、客が人格も悪いらしいことを聞いて陽気になれなかった。そんなことを考えながら、彼は月明かりを踏みながら帰っていった。

概ね正しく要約されていることが確認できました。

\ Pythonを自宅で好きな時に学べる! /

まとめ

今回はOpenAIがAPIを提供している音声認識システムと、ChatGPTを組み合わせた音声ファイルの要約システムの構築方法を紹介しました。
ぜひ、ビジネスやリスキリングで活用してみてください。

また、以下の記事で効率的にPythonのプログラミングスキルを学べるプログラミングスクールの選び方について解説しています。最近ではほとんどのスクールがオンラインで授業を受けられるようになり、仕事をしながらでも自宅で自分のペースで学習できるようになりました。

スキルアップや副業にぜひ活用してみてください。

スクールではなく、自分でPythonを習得したい方には、いつでもどこでも学べる動画学習プラットフォームのUdemyがおすすめです。

講座単位で購入できるため、スクールに比べ非常に安価(セール時1200円程度~)に学ぶことができます。私も受講しているおすすめの講座を以下の記事でまとめていますので、ぜひ参考にしてみてください。

それでは、また次の記事でお会いしましょう。

著:Steven Bird, 著:Ewan Klein, 著:Edward Loper, 翻訳:萩原 正人, 翻訳:中山 敬広, 翻訳:水野 貴明
¥4,170 (2023/09/18 22:14時点 | Amazon調べ)

参考

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次