Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
OpenAI社のWhisper APIを使ってみた! / ChatGPT研究会 第7弾 (AL...
Search
you(@youtoy)
PRO
May 20, 2023
Technology
0
1.4k
OpenAI社のWhisper APIを使ってみた! / ChatGPT研究会 第7弾 (ALGYAN)
you(@youtoy)
PRO
May 20, 2023
Tweet
Share
More Decks by you(@youtoy)
See All by you(@youtoy)
Node-REDのFunctionノードでMCPサーバーの実装を試してみた / Node-RED × MCP 勉強会 vol.1
you
PRO
0
130
総額200円の入力インターフェースで年齢問わず楽しめる体験型展示 / エンジニアの自由研究発表会vol.10
you
PRO
0
59
Node−RED で Ollama を使ったローカルLLM(node-red-contrib-ollamaを利用) / ビジュアルプログラミングIoTLT vol.20
you
PRO
0
180
AIエージェント開発や最新の生成AIのAPI利用などJavaScriptで色々やってみる / IoTLT vol.123
you
PRO
0
110
ChatGPT からモックサーバー宛(Beeceptor宛)の HTTPリクエストを試す / IoTLT 202504
you
PRO
0
100
デモをまじえつつの生成AIの話題 / 横須賀プログラミング“夢”アカデミー発表会(2025年3月)
you
PRO
0
53
もくはりでのモノ作りと自身のモノ作り活動 / もくはり文化祭2024 オープン記念イベント
you
PRO
0
57
"かわいい" がテーマのハッカソンでWebの技術を使って魔法の世界を作った話など / HTML5 10th Anniversary
you
PRO
0
110
ブラウザで AI・機械学習が扱える TensorFlow.js が使われているライブラリなどの話 / #さくらのAI Meetup vol.4「ブラウザ」
you
PRO
0
240
Other Decks in Technology
See All in Technology
Should Our Project Join the CNCF? (Japanese Recap)
whywaita
PRO
0
340
無意味な開発生産性の議論から抜け出すための予兆検知とお金とAI
i35_267
4
13k
2025-07-06 QGIS初級ハンズオン「はじめてのQGIS」
kou_kita
0
170
AI時代の開発生産性を加速させるアーキテクチャ設計
plaidtech
PRO
3
150
ゼロからはじめる採用広報
yutadayo
3
920
AI専用のリンターを作る #yumemi_patch
bengo4com
5
4.3k
LangChain Interrupt & LangChain Ambassadors meetingレポート
os1ma
2
310
Claude Code に プロジェクト管理やらせたみた
unson
6
4k
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
27k
改めてAWS WAFを振り返る~業務で使うためのポイント~
masakiokuda
2
250
OPENLOGI Company Profile
hr01
0
67k
KiCadでPad on Viaの基板作ってみた
iotengineer22
0
300
Featured
See All Featured
Unsuck your backbone
ammeep
671
58k
Designing Experiences People Love
moore
142
24k
Gamification - CAS2011
davidbonilla
81
5.4k
Writing Fast Ruby
sferik
628
62k
The Cult of Friendly URLs
andyhume
79
6.5k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
Visualization
eitanlees
146
16k
Side Projects
sachag
455
42k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
We Have a Design System, Now What?
morganepeng
53
7.7k
Transcript
2023年5月20日 (土) ChatGPT研究会 第7弾 @オンライン 豊田陽介( ) @youtoy OpenAI社のWhisper APIを
使ってみた!
自己紹介 豊田陽介( ) @youtoy ・IT系イベント主催、登壇や運営なども ・共著・単著の本を出していたり ・ Microsoft MVP(2021/10 から)
プライベートでの活動 ・ガジェット大好き ・ChatGPTは昨年の12月2日から利用開始 ※ アドベントカレンダーで、12月2日 やその他の日で ChatGPTネタの 記事を書いたりも 好きなこと、他
OpenAI社の 「Whisper API」の話
「Whisper API」の概要説明(公式) https://openai.com/blog/introducing-chatgpt-and-whisper-apis より ▼「Whisper」は 2022年9月に オープンソース化された 「Speech to
Textモデル」 ▼「Whisper API」は API経由で それを利用可能(※ large-v2 モデル) ▼ API の料金は「$0.006/分」
「Whisper API」の概要説明(公式) https://openai.com/blog/introducing-chatgpt-and-whisper-apis より ▼「Whisper」は 2022年9月に オープンソース化された 「Speech to
Textモデル」 ▼「Whisper API」は API経由で それを利用可能(※ large-v2 モデル) ▼ API の料金は「$0.006/分」
「Whisper API」の概要説明(公式) https://openai.com/blog/introducing-chatgpt-and-whisper-apis より ▼ API でできること ・いろいろな言語の書き起こし ・書き起こし+英語への翻訳 ▼
対応フォーマット ⇒ m4a, mp3, mp4, mpeg, mpga, wav, webm
現在ベータ版(2023年5月20日時点) https://platform.openai.com/docs/guides/speech-to-text
とりあえず日本語音声で 「Whisper API」を試す
Whisper API の使う方法 https://openai.com/blog/introducing-chatgpt-and-whisper-apis より Python curl
オプションの1つ:言語指定 言語指定をすることで 「精度と遅延」が改善される
curlを使って実際に試してみる ▪手順 1)処理対象の音声ファイルの内容を確認 2)curlコマンドで API を利用してみる ※ APIキーは環境変数「$OPENAI_API_KEY」に設定
curlを使って実際に試してみる ▪手順 1)処理対象の音声ファイルの内容を確認 2)curlコマンドで API を利用してみる ※ APIキーは環境変数「$OPENAI_API_KEY」で設定 curl
https://api.openai.com/v1/audio/transcriptions \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -H "Content-Type: multipart/form-data" \ -F model="whisper-1" \ -F file="@【ファイルのパス+ファイル名】" \ -F language="ja" 言語指定: 「ja」
ライブデモ
ちょっとした処理なら 簡単に実行できてしまう
今度は「Node.js」で
Whisper API の使う方法 https://platform.openai.com/docs/api-reference/audio/create?lang=node より Node.js
ちょっと修正が必要
Node.jsからAPIを使う ※ APIキーは環境変数「$OPENAI_API_KEY」で設定
Node.jsでの 処理結果を確認
ライブデモ
音声データに関する注意 25MBまで PyDub を使った対応例 (部分的な取り出し) ▪ファイルサイズの制限
少し余談: 先ほど使った音声ファイルは?
Mozillaが公開しているデータセット ▪Common Voice https://commonvoice.mozilla.org/ja
オープンなデータセットのクラウドソーシング
日本語の音声データもある 今回は「Common Voice Delta Segment 13.0」を利用 試したもの
ダウンロードしたデータの中身 たくさんの mp3ファイル 音声ファイルに 関する情報のリスト
テスト用のファイルを 手軽にゲットできる!
ここで 「API」ではないほうの話
オープンソース化されていた 「Whisper」
「Whisper」のオープンソース化とAPI ▪ 提供開始は以下 ※ 以下の年月日は、OpenAIの公式記事のタイムスタンプベース • 2022年9月21日: オープンソース化 ⇒
https://github.com/openai/whisper にて • 2023年3月1日: Whisper API の一般公開 ※ ChatGPT API の一般公開と同時
モデルデータや対応言語 ・・・ 複数のモデルがある (ファイルサイズ、精度、 処理速度などの違いあり) 様々な言語に対応 (グラフは精度に 関する内容)
このあたりを読んでみると良さそう https://qiita.com/diesekiefer/items/00d8c1507829b58a62ab 日本語で概要が 説明されている記事
活用の幅を拡げるために
長時間の音声ファイルの 書き起こしへの対応
【再掲】音声データに関する注意 25MBまで ▪ファイルサイズの制限
25MBより大きい ファイルを扱う場合
対応方法の例 ▪ ファイルサイズを小さくする • ファイルを分割する • ファイルの圧縮をする/圧縮率を上げる ※ 場合によっては、精度に影響する可能性が?
OpenAIのドキュメントに書かれている例 PyDub で冒頭10分を 取り出す処理
Pydubについて Python で音声ファイル を処理できる
(Whisper API自体の話では ない方向になりますが...)
黒い画面が 苦手でなければ
ffmpegを使って特定の部分の取り出し ▪コマンドの例: 切り出しの始点と終点を指定 ffmpeg -ss 【開始部分(秒数指定)】 -to 【終了部分(hh:mm:ss など)】 -i
【入力ファイル名】 -c copy 【出力ファイル名】
少し補足
ffmpegについて https://ffmpeg.org/ クロスプラットフォームで 様々な種類の映像・音声 ファイル等の処理が可能
ファイル分割の処理も コマンド1つで
ffmpegを使ってファイル分割 ▪コマンドの例: 特定の時間の長さ毎に分割する ffmpeg -i 【入力ファイル】 -f segment -segment_time 【時間】
-c copy -reset_timestamps 1 【出力ファイル名】 ※ 出力ファイルでの連番の指定例: output_%03d.m4a
ちょうどよい 区切りを見つける
▪コマンドの例: 無音区間を見つける ffmpeg -i 【入力ファイル(音声)】 -af silencedetect=n=【許容する ノイズのレベル】:d=【検出する区間の長さの閾値】 -vn -f
null - 再びffmpegを使った例
ライブデモ
▪ silencedetect=n=0.001:d=1.0 ▪ silencedetect=n=0.001:d=1.5 ffmpegの「silencedetect」の出力例
▪ silencedetect=n=0.001:d=0.5 ffmpegの「silencedetect」の出力例
他のツールなどを使った例を探す ▪ 関連するキーワード ・ Voice Activity Detection ・ 音声区間検出 ・
発話区間検出 ・ Silence detection ・ 無音区間検出
探してみると GUIツールを使う方法も
ちょうどよい区切りを 見つける + ファイルサイズも考慮して分割
Pydubを使った事例 ▪【Google Colab】音声ファイルを無音区間で 25MB以下に分割する | agusblog https://agusblog.net/colab-file-split/ 無音区間を検出して区切りとする + 指定サイズを超えないようにファイル結合
動画ファイルから 音声ファイルを抽出
▪コマンドの例: 動画ファイルから音声をファイルで抽出 ffmpeg -i 【入力ファイル(動画)】 -vn -acodec copy 【出力ファイル (音声)】
ffmpegを使った例
その他の 様々な活用
・リアルタイムな入力に対する音声認識 ・話者判別の仕組みとの組み合わせ ・認識結果をChatGPTで要約 様々なことを試された事例(一部のみ) Whisper API 活用していきましょう!
終わり!