Hiho's Blog

CycleGANノンパラレル結月ゆかり声質変換やってみた

2018-04-22

目次

  • (背景)自分の声を結月ゆかりにしたい。前回はパラレルデータのアライメントが問題になったので、ノンパラレルデータの手法を試したい。
  • (手法)CycleGANを使ったノンパラレル声質変換を試みた。
  • (結果)アライメントしなくても聞き取れる音声が生成できた。しかし、言語性を保ちつつ声質変換できるパラメータは見つけられなかった。
  • (考察)CycleGANを用いて性能の良い声質変換を得るのは難しいと思った。Identity以外のお手頃な制約手法が見つかれば,また挑戦してみたい。

この記事は、技術系同人誌SIGNICO vol.5の掲載記事「CycleGANを用いたリアルタイム結月ゆかり声質変換」の結果音声を中心に載せています。 詳しい手法や解説などは同人誌の記事をご参照ください。

結果

フィルタ幅を変えた時の結果

「あらゆる現実を、全て、自分の方へ捻じ曲げたのだ。」
入力
目標
フィルタ幅5ms
フィルタ幅15ms
フィルタ幅1.28s
「予防や、健康管理、リハビリテーションのための制度を、充実していく必要があろう。」
入力
目標
フィルタ幅5ms
フィルタ幅15ms
フィルタ幅1.28s
「六百人のお客さんの人いきれに、むし暑くて、扇子を使わずにいられない。」
入力
目標
フィルタ幅5ms
フィルタ幅15ms
フィルタ幅1.28s
「十分間の休憩を与えられ、乱れた髪を結い直し、肩の汗をぬぐって、支度部屋で呼吸を整える。」
入力
目標
フィルタ幅5ms
フィルタ幅15ms
フィルタ幅1.28s
「家に来た年賀状は、三百枚ほどで、丁度、出した分と同じぐらいだ。」
入力
目標
フィルタ幅5ms
フィルタ幅15ms
フィルタ幅1.28s

損失の比率を変えたときの結果

「あらゆる現実を、全て、自分の方へ捻じ曲げたのだ。」
入力
目標
1:1
1:10
1:100
「予防や、健康管理、リハビリテーションのための制度を、充実していく必要があろう。」
入力
目標
1:1
1:10
1:100
「六百人のお客さんの人いきれに、むし暑くて、扇子を使わずにいられない。」
入力
目標
1:1
1:10
1:100
「十分間の休憩を与えられ、乱れた髪を結い直し、肩の汗をぬぐって、支度部屋で呼吸を整える。」
入力
目標
1:1
1:10
1:100
「家に来た年賀状は、三百枚ほどで、丁度、出した分と同じぐらいだ。」
入力
目標
1:1
1:10
1:100

Identity制約を追加した結果

「あらゆる現実を、全て、自分の方へ捻じ曲げたのだ。」
入力
目標
1:1
1:0.1
1:0.02
1:0.01
1:0.002
「予防や、健康管理、リハビリテーションのための制度を、充実していく必要があろう。」
入力
目標
1:1
1:0.1
1:0.02
1:0.01
1:0.002
「六百人のお客さんの人いきれに、むし暑くて、扇子を使わずにいられない。」
入力
目標
1:1
1:0.1
1:0.02
1:0.01
1:0.002
「十分間の休憩を与えられ、乱れた髪を結い直し、肩の汗をぬぐって、支度部屋で呼吸を整える。」
入力
目標
1:1
1:0.1
1:0.02
1:0.01
1:0.002
「家に来た年賀状は、三百枚ほどで、丁度、出した分と同じぐらいだ。」
入力
目標
1:1
1:0.1
1:0.02
1:0.01
1:0.002