2014/12/12

ささらはラッパーの夢を見る(1) -Matlab版World使ってみた

【デモ】
ここに女声(Cevio さとうささら)の音声があります。



この声のイントネーションを 別の声(Cevio タカハシ)に近い感じに変換します。



変換後の音声がこれです。

ささらさんの声が、
あ→い→う→え→お→、から、あ↓い↓う↑え↑お↓、という感じになりました。


【はじめに】
女声ラップが圧倒的に不足していると感じる今日このごろ。

ないなら作ってしまえば良いというDIY精神のもとに、
Cevioさんで頑張ることにしました。

Cevioにはしゃべり声合成機能が付いているので、
それを使えばラップが出来そうなのですが、
イントネーションの調節がめんどくさいという問題点があります。

ソングトラックなら、XMLを直接書き換えるという裏技ができるのですが、
トークトラックは、基準の音高に対してどうずらすかということしか、
ファイルに記録されていないのでできません。

さて、どうするか。
Cevioの外側で補正すればよいじゃないか。

ということで、
Cevioで音声合成->どうにかピッチを修正してイントネーションを直す
->うれしい

【シリーズ目標】
・Cevioを使った女声ラップ曲のボーカルトラックを作成する
・Cevioでイントネーションの調節を頑張らない。外側の変換器で頑張る。

 【実装】
山梨大の森勢先生が開発した
WORLDという音声分析変換合成システムを使用しました。
UTAUの合成エンジンや、Cevioの分析エンジンにも使われているそうです。

修正BSDライセンスでmatlab版とC言語版が公開されています。

ちなみに類似のものとして、STRAIGHTというものもあります。
音質やライセンス等を考慮して選ぶと良いと思います。

matlab版が公開されていたり、ライセンスが緩めで好みだという2点の理由から
とりあえず、WORLDと戯れてみようと思います。

で、戯れた結果が最初の音声になります。

コードはこちら。

いと、シンプル。


【次回の課題】
・実際の音声に対して適用するとどうなるか

2014/11/26

「炉心融解」を駅名だけで歌わせてみてる(3)

色々とあれですが、とりあえず最後まで出来ました。

#動画はオリジナルのものをお借りしています。
http://www.nicovideo.jp/watch/sm8089993




「炉心融解」を駅名だけで歌わせてみてる(1) では、Aviutlを使って全部手動で入力し、
「炉心融解」を駅名だけで歌わせてみてる(2) では、Cevioのデータを解析して動画を自動生成するというアプローチで進めてみました。

今回は、Cevioのデータを解析する代わりに、
歌声のwavファイルを解析することで、どのタイミングでどの歌詞を歌っているかを推定することで、
動画を自動生成するアプローチを取ってみました。
で、一応最後まで通してみました。

現状の実装では
・歌声のwavファイル
・歌詞がひらがなで書かれたファイル
・駅名と路線リスト
の3つを入力すると、4,5個のスクリプトを経由して
AviSynthのファイルが生成されます。
ちなみにAviSynthのファイルは「つんでれんこ」にそのまま投げられます。

精度で言うと、
自動推定なので、割とミスってる場所も見られます。
わかりやすい所で言うと、ロングトーン前後と最後がかなりひどいことになっています。

とはいうものの、(恐らく)人手やると手間がかかる、
歌詞が多い箇所は比較的うまく行っているようです。

Cevioを対象にするなら、Cevioのファイルそのものを解析したほうが正確なのですが、
今回のアプローチは音声を対象にするので、
人が歌った歌声等にもそのまま適用できるのがおいしいところです。

なんにしても、駅名炉心融解ももうちょいで完成しそうです。
今回作ったツールをまとめつつ、次のネタを考えたいところですね。

-----これまで
「炉心融解」を駅名だけで歌わせてみてる(2) 
「炉心融解」を駅名だけで歌わせてみてる(1) 
【垰瀬内なら】駅名替え歌を自動生成する(3) 【自動で作る】 
【垰瀬内なら】駅名替え歌を自動生成する(2) 【自動で作る】
【垰瀬内なら】駅名替え歌を自動生成する(1) 【自動で作る】

2014/11/22

Juliusのmkdfa.plをwindowsで動かせるようにした

まとめ:mkdfa.plの上の方にある$thisdirあたりを修正すれば動く

*Win版Julius dictation-kit-v.4.3.1で動作を確認しています。

Juliusで文法を自分で書くときに、
mkdfa.plというperlのスクリプトを使ってgrammar+voca -> dfaの変換をすると思うのですが、

windowsでそれをすると

fruit.grammar has 6 rules
fruit.voca    has 9 categories and 20 words
---
sh: mkfa: command not found
sh: dfa_minimize: command not found
---
no .dfa or .dict file generated

とかでてきて死にたくなります。

同じディレクトリにmkfa.exeとかdfa_minimize.exeとかあるのにnot foundとはこれいかに。

ということで、mkdfa.plをprintfデバッグします。
そうすると上の方にある$thisdirが空になっていることがわかりました。

要するにカレントディレクトリがとれてないという事になります。

ということで、上の方をちょちょいと書き換えます。

そうすると、

fruit.grammar has 6 rules
fruit.voca    has 9 categories and 20 words
---
Now parsing grammar file
Now modifying grammar to minimize states[0]
Now parsing vocabulary file
Now making nondeterministic finite automaton[8/8]
Now making deterministic finite automaton[8/8]
Now making triplet list[8/8]
9 categories, 8 nodes, 10 arcs
-> minimized: 8 nodes, 10 arcs
---
generated: fruit.dfa fruit.term fruit.dict

となって、動きます。

2014/11/20

「炉心融解」を駅名だけで歌わせてみてる(2)

とりあえず、できたところまで。
#動画はオリジナルのものをお借りしています。
http://www.nicovideo.jp/watch/sm8089993



AviSynthというソフトを使うと、スクリプトで字幕を入れられるようなのでテスト中。

どのタイミングで何を歌っているかわかれば
自動で字幕が入れられるようになるので、
回り道してそっちにも手を出そうかなあと思っているところです。

-----これまで
「炉心融解」を駅名だけで歌わせてみてる(1) 
【垰瀬内なら】駅名替え歌を自動生成する(3) 【自動で作る】 
【垰瀬内なら】駅名替え歌を自動生成する(2) 【自動で作る】
【垰瀬内なら】駅名替え歌を自動生成する(1) 【自動で作る】

2014/11/09

「ぴくかる」開発記録(9) -自分の絵を見た時に点数が倍になるバグを修正

絵師さんの戦闘力@pixivを測定するブラウザ拡張機能
「pixiv skill calculator」(ぴくかる)を開発しています。
最新版はv.1.5.3です。

Google Chrome版ダウンロード
Opera版ダウンロード(v.1.5.1なので注意!)
FireFox(+GreaseMonkey)版ダウンロード:
機能一覧:こちら

今回のアップデートはバグフィックスです。
#最近は垰瀬内ばっかで放置気味です……。

--前回との差分--
【バグフィックス】
自分の絵にアクセスした時に、自分のスキル値が倍になるバグを修正しました。

#前回のブログ記事でバグを報告していただきました。
  ありがとうございます!

【機能修正】
スキル値を表示する位置を変更しました。

タイトルの上から、下に移動させました。
その関係で、スキル値の表示が絵の横に回りこむのも解消されると思います。



--今後の課題--
【改良】適切なツールチップを表示させて、初見のユーザでも操作がわかるようにする

【改良】無視すべきタグ辞書の改良

【追加】マルチブラウザに対応させる
       →Safariは証明書が取得できればいけそう→審査落ちた?
       →落ちました。 ←New!

【改良】ライバル登録ボタン使用時の(見た目の)挙動
       →まだ改良の余地多数あり。

【改良】計算式にフォロー・マイピクを加味する

【バグ】R-18を表示させないようにするユーザがR-18を含む絵師のページに行くと、
    スキル値が適切に計算出来ない

【分析】Tinamiとの比較とか面白そう

【その他】もう少しスキル値を上げたい orz
現在19456/20346位@3384ポイント(上位95.6%) 

--その他--

Q.バグ/機能要望/質問等はどこへ?
この記事のコメントか、右側のtwitterに@なりDMなり飛ばしてください。
善処します。

2014/11/08

「炉心融解」を駅名だけで歌わせてみてる(1)

#内容的には以前の記事の続きなのですが、
  技術的な進展は特にないので……。

題名の通りのことをやっています。
今のところ、ここまで出来ました。

思ったより作るのしんどいような、そうでもないような。

動画はオリジナルのものをお借りしています。
http://www.nicovideo.jp/watch/sm8089993