定番機能
定番機能について
02. 音声処理

音声

  • 音声ファイルのよくある用途
  • 音声ファイルのアップロード
  • 音声ファイルフォーマット/エンコード
  • 音声ファイルのホスト/配信
  • 音声ファイルの加工
  • 音声ファイルの再生プレイヤー
  • 音声ファイルの再生トラッキング
  • 音声のストリーミング配信/ライブ配信/P2P通信
  • 音声の解析

Google Cluod Speech、Nuance

音声ファイルのよくある用途

  • 音楽配信: Apple Music, SoundCloud, spotify
  • ポッドキャスト配信: Podcast iTunes
  • ライブ配信: Youtube, niconico (動画がメイン)
  • ボイス投稿: Anchor
  • ボイスチャット: Skype, LINE (映像も可能)

音声管理/音声配信/音声共有/音楽プレイヤー/音声通話

参考

音声ファイルのアップロード

クライアントでの選択方法

  • ブラウザ: HTMLのinputタグでtypeをfileにして、画像を選択
    • または、HTML5のDnD APIで複数枚のFileを取得する
    • jQueryにしろReactにしろ、それぞれやり方ある
  • iOS: AlamofireでNSDataとしてファイルを選択する
    • カメラの起動、カメラロールからの取得など
    • Androidも同様(いくつかライブラリがある)

ファイルアップロード

  • multipart/form-dataでアップロードする

フォームよるファイルアップロードの仕様

pre-flightでS3に画像をアップ

メインサーバーでは、選択された画像のメタデータだけ送信し、認証処理と画像のvalidationを完了したら、S3へのアクセストークンを返却し、クライアントから直接画像をS3にアップロードする。メインサーバーの負荷を減らすためにも、直接アップロードしたほうがお得。CORSに注意が必要。

音声ファイルフォーマット/エンコード

  • MP3
  • AAC
  • WMA
  • WAV

Elastic Transcoder でのエンコード

S3にアップロード後、LambdaをTranscoderを呼び出し、エンコードし、Bucketに設置。

参考

音声ファイルのホスト/配信

  • WEBサーバーと同じ場所にホスト: Nginxが稼働しているファイルシステムと同じ場所にホスト
  • S3など専用ファイルサーバーにホスト: サーバー経由またはクライアントからダイレクトで送る
  • AkamaiなどのCDNから配信: CDNにキャッシュさせて配信する
    • CloudFront(AWS), Cloudflare, Fastlyなど

音声ファイルの加工

  • ノイズ除去
  • 切り取り
  • 合成

音声ファイルの再生プレイヤー

  • HTML5のaudioタグ, JavaScriptのライブラリ, Flashのライブラリ
  • iOS(Swift): AVPlayer
  • Android(Java): VideoView

参考

音声ファイルの再生トラッキング

  • 再生状況
  • 飛ばしたポイント
  • 途中離脱のポイント

音声のストリーミング配信/ライブ配信/P2P通信

プロトコル

WebRTC

音声の解析

  • 波形抽出
  • GCP, AzureのAPIを利用した言語処理(テキスト書き出しなど)

benalavi/waveform: Generate waveform images from audio files

機能カタログ