人工知能に関する断創録スマートフォン用の表示で見るスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。ロボティクス、生物学などに興味を持っています。このブログでは人工知能のさまざまな分野について調査したことをまとめています。Learning、Kerasに関する記事が多いです。ボイスチェンジャーを作ろう(2015/2/25)の続き。前回は音声から抽出したメルケプストラムやピッチのパラメータを直接いじることで簡単なボイスチェンジャーを作った。今回からAさんの音声をBさんの音声に変換する規則を機械学習の手法で学習する声質変換の実験をしていきたい。今回は学習データとなる音声データをダウンロードするところとメルケプストラムを抽出するところまで。Databasesという公開データを使う。このデータは7名の英語話者が同じ文章を朗読した音声がついている。今回作る統計的声質変換の手法は、変換元のAさんと変換先のBさんが同じ文章を読んだ音声が必要になるのでちょうどよいデータ。日本語の音声は探したけどなかった。あとで自分の声でやってみたい。一括ダウンロードするスクリプトは、download_cmu_arctic.shをお借りした。curlというコマンドがなかったのでインストール。Windowsの場合はCygwinについている。ダウンロードするとFestvox用のデータがいろいろついているけど今回必要なのは各話者のwavだけ。そのためwav以外は削除して下のようなディレクトリ構造にした。...awbなどは話者IDみたい。各話者1132文を収録しているようだ。フォーマットは16kHz、16bit、monoだった。こんな声clb音声を再生するには、audioタグをサポートしたブラウザが必要です。slt音声を再生するには、audioタグをサポートしたブラウザが必要です。bdl音声を再生するには、audioタグをサポートしたブラウザが必要です。rms音声を再生するには、audioタグをサポートしたブラウザが必要です。今回の実験ではチュートリアルと元論文にならって女性のclbさんの声をsltさんにするモデル男性のbdlさんの声をrmsさんにするモデルの二種類を実験していきたい。今回の実験ではメルケプストラムしか変換しないので男声を女声にするのは難しいと思われる。男声と女声ではピッチ(声の高さ)がだいぶ違うので。ピッチも変換モデルを学習すればよいと思うのであとで試してみたい。メルケプストラムの抽出まずは音声データからメルケプストラムを抽出する。チュートリアルではWORLDを使っているけど今回はSPTKを使った。SPTKは今までもけっこう活用していたので。SPTKを使ったメルケプストラムの抽出は下の記事を参照のこと。まあ前回のボイスチェンジャーを作ろうでも使ってたけど。音声データからメルケプストラムを一括抽出するスクリプト。mcep/rmsのようなコマンドを実行するとmcepディレクトリの下にメルケプストラムが保存される。あとでnumpyを使って簡単にデータを読み込めるようにテキスト形式で保存している。ファイルを開くと1行に1フレーム分のメルケプストラム係数(26次元データ)がずらずら並ぶファイル形式になっている。SPTKのmcepコマンドの-mオプションに指定するメルケプストラム次数は25次だけど0次元目にパワーの値が入るので実際は26次元のベクトルになる。ここがずれているのに気がつかなくてはまった・・・メルケプストラムの描画clbさんとsltさんのメルケプストラムを比較してみたい。メルケプストラムは26次元の時系列データなので全部表示するとわかりにくくなる。いうわけで0次(order=0)、1次(order=1)、2次(order=2)の値をそれぞれ描画してみよう。横軸が時間(フレーム)になる。同じ文章(音韻)をしゃべっているため概形は似ているが、話者によって細部の形が異なることがわかる。この違いが個人の声質の違いを表すそうだ。あとしゃべる速さが違うこともあり、山のフレーム位置がずれていることがわかる。次回に紹介するDTWというアルゴリズムを使うとこのずれを補正できる。ボイスチェンジャーを...»プロフィールid:aidiary人工知能とその関連分野に興味があります。Blog|ブログを報告する。