音声合成メモ(AutoVC)
「AutoVC」を試してみる。
GitHub - auspicious3000/autovc: AutoVC: Zero-Shot Voice Style Transfer with Only Autoencoder Loss
AUTOVC is a many-to-many non-parallel voice conversion framework.
モチベーション
- 「SpeechSplit」を試してみようとして、デモの実装で使われていたから
- Zero-Shotの実力を知りたい(英語のデモはあるが、日本語だとどうか?)
Modelのパラメータは学習済みのものを使う。
アウトプットはMel-Spectrograms
G = model_vc.Generator(32, 256, 512, 32).eval().to(device) g_checkpoint = torch.load('autovc.ckpt', map_location='cuda:0') G.load_state_dict(g_checkpoint['model']) _, x_identic_psnt, _ = G(uttr_org, # ソース音声(Mel) emb_org, # 話者Embed (ソース) emb_tgt # 話者Embed (ターゲット) ) uttr_tgt = x_identic_psnt[0, 0, :-len_pad, :].cpu().numpy() # 変換音声(Mel)
これをVocoder(今回はWaveNet)で音声に変換する。
試してみる(その1)
ATR503の発話音声を、綾波レイの音声に変換してみる。
ターゲット音声となる"綾波音声"データは下記を使用させていただいた。
Scyclone Demo Page
ソース音声(ATR503)
ターゲット音声(話者Embedの生成に使用)
試してみる(その3)
話者「p256」のEmbedで試してみた結果。
(wavファイルが公開されていないが、おそらく男性と思われる)
変換結果
話者Embedを適切に作れれば、求める音声に変換できるかもしれない。