karaokestudio

A4d1023b1de7890c67a083d14573882d?s=47 S-Katagiri
April 04, 2020
170

 karaokestudio

April Fool Project

https://github.com/Gedevan-Aleksizde/karaokestudio

UPDATE
2020/4/4: 要件にffmpeg追加, 参考文献の表記を修正

A4d1023b1de7890c67a083d14573882d?s=128

S-Katagiri

April 04, 2020
Tweet

Transcript

  1. 2020 年エイプリールフール企画 ill-identified 2020-04-04 1

  2. 自己紹介 • twtiter ID: ill_identified • 主語の大きい話が好き •『計量経済学と機械学習の関係』(80th Tokyo.R) •『今更だが,

    ベイズ統計とは何なのか.』 •『R とパンデミックの数理モデル新型コロナウィルス (COVID-19) 研究を例に』(エア Tokyo.R Feb. 2020) • 主語の変な話も好き •『三国志で学ぶデータ分析』(Japan.R ’19) •『飯野山は正規分布らしいのでパラメータを推定する』 2
  3. 勤務先の求人 https://n.fancs.tech/recruitment/ 3

  4. これまでのあらすじ • 六角形ステッカーで痛スーツケースを作成できた • 発表者のくせに遅刻したらついに在宅発表することに 4

  5. 本題 R 使ってるとカラオケしたくなるときありますよね 今のご時世カラオケボックスは行きづらいですよね 5

  6. その名は karaokestudio RStudio でカラオケするパッケージ作りました kaʀaokestudio https://github.com/Gedevan-Aleksizde/karaokestudio ♬ ♪ https://github.com/Gedevan-Aleksizde/karaokestudio •

    (配布パッケージの体裁にはなっていない) 6
  7. 謝辞 • @kazutan 氏に感謝! • 氏のtubeplayRで遊んでたら思いついた • 以前は Mac か

    RStudio Server でしか使えなかった • 今は Qt が更新されて使える • R でカラオケする時が来た! • https://github.com/Gedevan- Aleksizde/karaokestudio 7
  8. 必要なもの 1: 基本 • Linux OS (Ubuntu)1 • RStudio •

    マイク • 外部ライブラリ • portaudio19-dev + python pyaudio • ffmpeg • mecab + mecab-ipadic-neologd 1docker 使えば他の OS でも動く? サウンドデバイスの設定は未確認 8
  9. 必要なもの 2: GCP のアカウント • GoogleCloudPlatform への登録 • 以下の API

    の許可 • YouTube Ads Reach API • YouTube Anlytics API • YouTube Data API • YouTube Reporting API • Google Cloud Storage JSON API • Google Translation API • Google Speech-to-Text API 9
  10. 必要なもの 3: R パッケージ • shiny, shinyJs - アプリケーション開発 •

    tubeR - YouTube API を操作する • googlelanguageR - 音声認識 API の操作 • googleCloudStorageR - 音声ファイルアップロード • zipangu - テキスト処理に使う • reticulate - サウンドデバイス操作 • R のパッケージではうまくいかなかった • hexSticker - 六角形アイコン作成 • その他よく使う tidyverse 系いろいろ 10
  11. 設計の概要 1. shiny, shinyjs で UI 表示 2. 動画再生イベントを監視 •

    Youtube Player API を使うため javascript も必要 3. Youtube API で動画の再生時間とキャプションを取得 4. 再生と同時に録音開始 5. Google Cloud Speech API へ送って文字に起こす • ファイルサイズのため一旦 Google Cloud に上げ る必要 6. キャプションを mecab で読みに変換 7. キャプションと録音テキストの類似度で採点 11
  12. 得点の計算方法 • 採点方法には研究‧特許いろいろある ([1], [2]) • 音声の教師データは用意不可 • キャプションも音声も開始‧終了時刻の情報しかない 0

    5 10 15 second lyrics voice 12
  13. 得点の計算方法 1: 開始時刻でマッチング • キャプション開始時刻に最近のものとマッチング • 間隔が空きすぎるものはマッチなしと判定 開始 8.82S 11.18S

    終了 11.166S 13.68S 正解 テラシダシテグリーンライツ ヒロガルミライヲ 歌声 チラシダシテルグリーンライツヒロガル ミライオキット • Omoi 作詞「グリーンライツ‧セレナーデ」の場合 13
  14. 得点の計算方法 2: 編集距離で採点 • 対応するキャプションと音声のテキストで類似度計算 • 編集距離 (レーベンシュタイン距離) を使う •「何文字修正すれば一致するか」を表す距離

    • 100 点満点になるよう文字数で正規化 14
  15. 注意点 • 著作権は大事 • キャプションは絶対 • 全て読み上げないと満点にならない • 動画の権利者が許可してない動画あり •

    外部サイトでの利用を許可しない場合も • そもそもキャプション登録されていない動画 読みを推理するのが無理ゲー ここは裏切りの ティル‧ナ‧ノーグ 楽園 さ迷う心の はて 涯に (茅原実里, 畑亜貴作詞/菊田大介作曲『Paradise Lost』) 15
  16. References [1] Tsai, Wei-Ho and Hsin-Chieh Lee (2012) “Automatic Evaluation

    of Karaoke Singing Based on Pitch, Volume, and Rhythm Features,” IEEE Transactions on Audio, Speech, and Language Processing, Vol. 20, No. 4, pp. 1233–1243, May, DOI: 10.1109/TASL.2011.2174224. 16
  17. [2] 竹内英世‧保黒政大‧梅崎太造 (2009) 「カラオケ採 点用の高分解能ピッチ抽出法」 , 『電気学会論文誌 C』 , 第

    129 巻,第 10 号,1889–1901 頁,DOI: 10.1541/ieejeiss.129.1889. 17