見出し画像

【コピペで動く】WhisperとChatGPT APIで会議を要約するアプリ作った話

本日(3/2)、ChatGPT APIとWhisper APIが発表されました!

ChatGPTとWhisperについておさらいすると、

ChatGPTは、「要望に合わせて返事をしてくれるAI」
Whisperは、「音声を文字起こししてくれるAI」です。

これらのAPIが提供されたということは、
ほんのわずかのプログラムで
実行できる仕組みが提供された

ということです!

このWhisperとChatGPTを試しに使ってみたいということで、

Whisperで会議を文字起こしして、
ChatGPTで要約するアプリ

をGoogle Colab上に作ってみました。

下にあるコードをGoogle Colabにコピペするだけで
あなたのパソコンでも動きますので
ぜひ試してみてください


1. OpenAIのインストール

!pip install openai
import openai
openai.api_key = "あなたのapi_key"


apiキーはOpenAIにログインして取得することができます!
下のページにアクセスして、ログインしてください。

ログインしたら、右上のアイコンをクリックすると、
View API keysが出てきます。

ここで、APIキーを生成して、
プログラムの中に入れましょう。

2.音声を録音するプログラム


from IPython.display import Javascript
from google.colab import output
from base64 import b64decode

RECORD = """
const sleep  = time => new Promise(resolve => setTimeout(resolve, time))
const b2text = blob => new Promise(resolve => {
  const reader = new FileReader()
  reader.onloadend = e => resolve(e.srcElement.result)
  reader.readAsDataURL(blob)
})
var record = time => new Promise(async resolve => {
  stream = await navigator.mediaDevices.getUserMedia({ audio: true })
  recorder = new MediaRecorder(stream)
  chunks = []
  recorder.ondataavailable = e => chunks.push(e.data)
  recorder.start()
  await sleep(time)
  recorder.onstop = async ()=>{
    blob = new Blob(chunks)
    text = await b2text(blob)
    resolve(text)
  }
  recorder.stop()
})
"""

def record(sec=3):
  display(Javascript(RECORD))
  s = output.eval_js('record(%d)' % (sec*1000))
  b = b64decode(s.split(',')[1])
  with open('audio.wav','wb') as f:
    f.write(b)
  return 'audio.wav'  # or webm ?

3.Whisperを実行するプログラム

record(sec=120) #秒数はここで変更可能 
file = open("audio.wav", "rb")
transcription = openai.Audio.transcribe("whisper-1", file)
print(transcription.text)

4.ChatGPTを使って要約するプログラム

message = "次の文を30字で要約してください。「{}」".format(transcription.text)
print(message)
completion = openai.ChatCompletion.create(
  model="gpt-3.5-turbo", 
  messages=[{"role": "user", "content": message}]
)

print(completion.choices[0].message.content)


これらをGoogle Colabに
コピペしてもらえれば準備完了です!

ちなみに3つめのコードを実行すると、
2分間音声が録音されます。
録音は自動で終了するので、勝手に止めないように気をつけてください。(エラーが出る)



今回は、弊社ののCOO小野寺と、
このアプリの可能性について
2分間話してみました。

するとWhisper APIが2分の内容を
わずか数秒で文字起こししてくれました。

「2分間喋ろう これもう疑似録替わりだから わー音かぶった時どうなんだろうね いやわかんない ウィスパーは賢いから音は聞き取れると思うんだけど あの2人の考えがぐちゃぐちゃになっちゃう 確かにね あーそっかー これでこれを会議にずっと回しておけば 会議の後にも要約されたものが出てくるわけだよね 確かにだからメモ取る人がいらなくなるから 全員話に参加できると まあ確かにそう疑似録替りとかもいらなくなるわけよ もっとなんかないかね なんだろうね もうだけじゃなく でも発表練習とかにはめっちゃいいよね 自分が話したい内容とかをさ 要約してくれるでしょ そうねだからもうただただこう思うままに 話していった内容をまとめて あなた言いたいのはこれでしょうみたいなことできるわけだよね だからその情報をそぎ落とすと伝わるようになるじゃん やっぱでも話の長いおじさんのあれを要約したら一番いいのか どうやって使うのか どうやって使う いやそうだねあとはなんか論文の いや一緒か論文の見直しとかも一緒だわ 論文の見直しね ラジオ番組の要約とかもできるわけだよね ラジオ番組って要約しちゃっていいの? 情報系だったらいいか」
驚異の精度

そして、これをそのままChatGPT APIで要約させた結果がこちら!

ウィスパーを使って会議の議事録を自動的に作成するアイデアについて話している。参加者は全員話に参加できるため、メモ取る人がいらなくなるという利点がある。また、発表練習や論文の見直し、ラジオ番組の要約にも使えるということで話が進んでいる。
すごくよくまとまっている

WhisperxChatGPTは、SiriやAlexaがあなたのいうことを聞いてくれる感じ

今回は音声を要約させてみましたが、SiriやAlexaのような、音声認識AIを最小工数で作れると感じました。ぜひお試しください!


AI開発を勉強したい方はAcademiXへ


もし、AI開発にご興味がある方は、
ぜひ弊社が運営に携わっている
AcademiXにご参加ください〜!