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)
公開初日に Gemini CLI を試した話や FFmpeg と組み合わせてみた話など / Gemini CLI 初学者勉強会(#AI道場)
you
PRO
0
1.3k
Node-REDのFunctionノードでMCPサーバーの実装を試してみた / Node-RED × MCP 勉強会 vol.1
you
PRO
0
140
総額200円の入力インターフェースで年齢問わず楽しめる体験型展示 / エンジニアの自由研究発表会vol.10
you
PRO
0
61
Node−RED で Ollama を使ったローカルLLM(node-red-contrib-ollamaを利用) / ビジュアルプログラミングIoTLT vol.20
you
PRO
0
190
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
Other Decks in Technology
See All in Technology
セキュアなAI活用のためのLiteLLMの可能性
tk3fftk
1
340
無理しない AI 活用サービス / #jazug
koudaiii
0
100
Four Keysから始める信頼性の改善 - SRE NEXT 2025
ozakikota
0
420
How Do I Contact Jetblue Airlines® Reservation Number: Fast Support Guide
thejetblueairhelpsupport
0
150
An introduction to Claude Code SDK
choplin
2
1.1k
“日本一のM&A企業”を支える、少人数SREの効率化戦略 / SRE NEXT 2025
genda
1
270
Snowflake Intelligenceという名のAI Agentが切り開くデータ活用の未来とその実現に必要なこと@SnowVillage『Data Management #1 Summit 2025 Recap!!』
ryo_suzuki
1
160
毎晩の 負荷試験自動実行による効果
recruitengineers
PRO
5
180
安定した基盤システムのためのライブラリ選定
kakehashi
PRO
3
130
伴走から自律へ: 形式知へと導くSREイネーブリングによる プロダクトチームの信頼性オーナーシップ向上 / SRE NEXT 2025
visional_engineering_and_design
3
460
LIXIL基幹システム刷新に立ち向かう技術的アプローチについて
tsukuha
1
380
「Chatwork」のEKS環境を支えるhelmfileを使用したマニフェスト管理術
hanayo04
1
400
Featured
See All Featured
Designing for humans not robots
tammielis
253
25k
The Cult of Friendly URLs
andyhume
79
6.5k
We Have a Design System, Now What?
morganepeng
53
7.7k
BBQ
matthewcrist
89
9.7k
Navigating Team Friction
lara
187
15k
Embracing the Ebb and Flow
colly
86
4.8k
4 Signs Your Business is Dying
shpigford
184
22k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
50
5.5k
Into the Great Unknown - MozCon
thekraken
40
1.9k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
How to Think Like a Performance Engineer
csswizardry
25
1.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 活用していきましょう!
終わり!