ディープラーニングAPIを試してみよう
(主に)ディープラーニングの成果を利用したAPI集(自分用) - Qiita
こちらの記事がたいへん面白く何か動かしてみようと思いました。API利用ならデザイナーの自分でもディープラーニングで気軽に遊べそうです
DeepGram
DeeoGramという「音声中のキーワードを発見し、正確な位置を返す」APIを試すことにしました。
ゲーム実況動画から発話単語を検索するデモを見ることができます
DeepGram
DeepGram利用登録
フォームを入力し、登録します。使用目的は適当に書いておきましょう。
https://www.deepgram.com/signup
ジョブズのスピーチ動画をYoutubeから探す
認識させたい動画をyoutubeから探します。今回はジョブズのスピーチにすることしました。
スティーブ ・ジョブズ・スタンフォード大・卒業式スピーチ・2005年 Steve Jobs Stanford 式辞 - YouTube
- コンソール画面の左メニューから「my files」を選択
- upload some filesのフォームにYoutubeのURLを入力しsubmit
- 数秒後、動画のContent IDが表示されることを確認
curlしてAPIリクエスト
- コンソール画面の左メニューから「dashboard」を選択
- ページ最下部に「your dev key」が表示されていることを確認
- ページに表示されているcurlコマンドを確認
- ターミナルからコマンドを叩く
「stay hungry, stay foolish」を検索
APIリクエスト
curl -H "Content-Type: application/json" -X POST -d '{ "action": "object_search", "userID": "your-dev-key", "contentID": "your-content-id", "query": "stay hungy, stay foolish", "snippet": true, "filter": {"Nmax": 10, "Pmin": 0.55 }, "sort": "time" }' api.deepgram.com
- 「search through a file」のコマンドをコピペし、「your-content-id」をmy filesメニューに表示されたcontent idに修正
- Nmax: わからない
- Pmin: 認識率の最低値 ここでは55%
返ってきたJSON
{"snippet": ["were the words stay hungry stay foolish it was their", "they signed off stay hungry stay foolish and i have", "that for you stay hungry stay foolish thank you all"], "P": [1.0, 1.0, 1.0], "endTime": [853.26, 859.5200000000001, 871.17], "startTime": [850.7900000000001, 857.01, 868.91], "N": [0, 2, 1]}%
- snippet: 検索クエリ前後の発話内容
- 精度はあまり高くない
- P: 認識率 1のときは100%?
- startTime:発話時刻(秒)
- 結果:[850.7900000000001, 857.01, 868.91]
- 「stay hungry, stay foolish」を3回発話している
実際にチェック!
Youtubeで868秒時の動画を再生してみる。ちゃんと「stay hungry stay foolish」の発話位置になっていた。
https://www.youtube.com/watch?v=VyzqHFdzBKg&feature=youtu.be&t=868s
考察
- スピーチのような発話以外の雑音が少ないと認識しやすい
- 音楽のPVもやってみたけど精度が悪い
- 動画内容の検索に使えそう
- Podcastの内容を検索することもできそう
- 日本語も認識してくれるのか
- 英語しか検証してない