Javascriptを使ってブラウザ上で動作するボイスチェンジャーを作る
はじめに
最近、FaceRigとボイスチェンジャーを使って美少女になりきるという技術が現実的になってきて驚いています。
特にボイスチェンジャーの部分は、音声認識+テキスト読み上げ(TTS)で実現しているようです。
これだったらウェブブラウザ上で実装できるのでは?と思い今回は、アプリケーションに頼らずウェブブラウザ上で動く擬似的なボイスチェンジャーを実装してみました。
処理手順は以下の通りです。
- Web Speech API(SpeechRecognition)を使って声を文字列に変換
- VoiceText Web API(With Proxy)に変換した文字列を渡して、ArrayBuffer型の音声を取得
- Web Audio APIでArrayBufferをデコードして再生
このような処理手順で実装しました。
動作サンプル
上記のページのStart
ボタンを押すと音声認識が開始されます。
比較的新しい技術を利用しているので、恐らく最新版のChrome以外では動きません。
開発リポジトリ
ライセンス
MIT License
備考
このコードをローカルで動作させる場合は、php/proxy.php
の変更が必要になります。
<?php
// for heroku.
$ALLOW_ORIGIN = getenv("ALLOW_ORIGIN");
$VOICE_TEXT_API_ACCESS_KEY = getenv("VOICE_TEXT_API_ACCESS_KEY");
getenv("ALLOW_ORIGIN")
の部分を、自分の実行環境のドメインに合わせてください。よく分からない場合は*
を指定してください。
getenv("VOICE_TEXT_API_ACCESS_KEY")
の部分を、VoiceText Web APIのアクセスキーに変更してください。下記のページからAPIキーの取得が可能です。
<?php
/* 設定例 */
$ALLOW_ORIGIN = "*";
$VOICE_TEXT_API_ACCESS_KEY = "aaaaaaaaaaaaaa";
上の例のように変更すればOKです。