LoginSignup
9
10

More than 3 years have passed since last update.

『Yukarinライブラリ』 become-yukarin, yukarin のトラブルシューティング

Last updated at Posted at 2019-06-28

概要

yukarin, become-yukarin でよくあるエラーとその対策を共有します。
このエラー共有で、道半ばで挫折されないようにとの思いです。(プログラム慣れてない人だとわからないことも多いかと思います)

偉そうなこと書いていますが、これらのエラーはほぼ全て自分も踏みました!
エラーがあれば相談に乗りますので、コメントください(解決できるとは言っていない)。

トラブル・ご相談
エラー・トラブルなどございましたら、こちらのDiscordサーバのいらしていただいた方が、対応が早いかと思います。
同好の士もおりますので、是非ご参加ください!

Yukarinライブラリ Discord サーバ 招待リンク

A. become-yukarin

A.1 環境設定

pip のライブラリの挙動が怪しいとき

原因
いろんなケースが考えられる

対策

pip uninstall [libname] 
pip --no-cache-dir install -I [libname]

A.2 第1段 学習データ作成

A.2.1 ValueError: operands could not be broadcast together with shapes (373,21) (1007,21)

原因
学習用データを作った時に、違う条件のものが混じってる(違うサンプリングレートのものなど)

対策
npy を一度削除して 学習データ作成コマンド(extract_acoustic_feature.py)を再実行

エラー文例

yoshikazuoota@localhost:~/Dropbox/dev/deep_yukarin $ python become-yukarin/scripts/extract_acoustic_feature.py \
  -i1 dat/1st_models/aoi/voice_pair/own \
  -i2 dat/1st_models/aoi/voice_pair/target \
  -o1 dat/1st_models/aoi/npy_pair/own \
  -o2 dat/1st_models/aoi/npy_pair/target

...

Traceback (most recent call last):
  File "become-yukarin/scripts/extract_acoustic_feature.py", line 208, in <module>
    main()
  File "become-yukarin/scripts/extract_acoustic_feature.py", line 203, in main
    generate_mean_var(arguments.output1_directory)
  File "become-yukarin/scripts/extract_acoustic_feature.py", line 177, in generate_mean_var
    mfcc=numpy.mean(mfcc_list, axis=0, keepdims=True),
  File "/Users/yoshikazuoota/.pyenv/versions/3.6.3/lib/python3.6/site-packages/numpy/core/fromnumeric.py", line 3118, in mean
    out=out, **kwargs)
  File "/Users/yoshikazuoota/.pyenv/versions/3.6.3/lib/python3.6/site-packages/numpy/core/_methods.py", line 75, in _mean
    ret = umr_sum(arr, axis, dtype, out, keepdims)
ValueError: operands could not be broadcast together with shapes (373,21) (1007,21) 


A.2.2 assert len(paths1) == len(paths2)

原因
scripts/extract_acoustic_feature.py 実行時に設定する下記2ディレクトリの数が合わない。
学習用音声はファイル名を合わせて 1対1 対応で配置する必要があります。

  • -i1 in_1st_my_wav
  • -i2 in_1st_yukari_wav

対策
diff tool などを使って、ファイル名の対応が取れているか確認する

ターミナルでファイル一覧を出力して、テキストで差分をとってもいいと思います。

ls -1 in_1st_my_wav > in_1st_my_wav_list.txt
ls -1 in_1st_yukari_wav > in_1st_yukari_wav_list.txt
diff in_1st_my_wav_list.txt in_1st_yukari_wav_list.txt 

エラー文例

Traceback (most recent call last):
File "scripts/extract_acoustic_feature.py", line 206, in
main()
File "scripts/extract_acoustic_feature.py", line 193, in main
assert len(paths1) == len(paths2)
AssertionError

A.3.1 ValueError: Axis dimension mismatch

原因
params.py のオーダーや、config.json の設定の整合性が取れていない(場合が多いと思う)

対応
一度、npyデータなど、一式を削除してやり直す。

attic@deeplearning:~/voice/become-yukarin$  python train.py dat/in_zun_1st/config_add_network_noise_cut_rerecord01_vr2.json dat/model/zun_1st_art503_2019_06_10_add_network_low_noise_cut_rerecord01_vr2 
Exception in main training loop: Axis dimension mismatch
Traceback (most recent call last):
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/chainer/training/trainer.py", line 316, in run
    update()
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/chainer/training/updaters/standard_updater.py", line 175, in update
    self.update_core()
  File "/home/attic/voice/become-yukarin/become_yukarin/updater/updater.py", line 84, in update_core
    loss = self.forward(**batch)
  File "/home/attic/voice/become-yukarin/become_yukarin/updater/updater.py", line 65, in forward
    output = self.predictor(input)
  File "/home/attic/voice/become-yukarin/become_yukarin/model/model.py", line 137, in __call__
    return self.decoder(self.encoder(x))
  File "/home/attic/voice/become-yukarin/become_yukarin/model/model.py", line 93, in __call__
    hs = [F.leaky_relu(self.c0(x))]
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/chainer/link.py", line 294, in __call__
    out = forward(*args, **kwargs)
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/chainer/links/connection/convolution_nd.py", line 162, in forward
    dilate=self.dilate, groups=self.groups)
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/chainer/functions/connection/convolution_nd.py", line 496, in convolution_nd
    y, = fnode.apply(args)
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/chainer/function_node.py", line 321, in apply
    outputs = self.forward(in_data)
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/chainer/functions/connection/convolution_nd.py", line 188, in forward
    return self._forward_xp(x, W, b, cuda.cupy)
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/chainer/functions/connection/convolution_nd.py", line 86, in _forward_xp
    return self._forward_xp_core(x, W, b, xp)
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/chainer/functions/connection/convolution_nd.py", line 146, in _forward_xp_core
    y = xp.tensordot(col, W, (axes, axes)).astype(x.dtype, copy=False)
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/cupy/linalg/product.py", line 183, in tensordot
    raise ValueError('Axis dimension mismatch')
Will finalize trainer extensions and updater before reraising the exception.
Traceback (most recent call last):
  File "train.py", line 83, in <module>
    trainer.run()
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/chainer/training/trainer.py", line 349, in run
    six.reraise(*exc_info)
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/six.py", line 693, in reraise
    raise value
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/chainer/training/trainer.py", line 316, in run
    update()
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/chainer/training/updaters/standard_updater.py", line 175, in update
    self.update_core()
  File "/home/attic/voice/become-yukarin/become_yukarin/updater/updater.py", line 84, in update_core
    loss = self.forward(**batch)
  File "/home/attic/voice/become-yukarin/become_yukarin/updater/updater.py", line 65, in forward
    output = self.predictor(input)
  File "/home/attic/voice/become-yukarin/become_yukarin/model/model.py", line 137, in __call__
    return self.decoder(self.encoder(x))
  File "/home/attic/voice/become-yukarin/become_yukarin/model/model.py", line 93, in __call__
    hs = [F.leaky_relu(self.c0(x))]
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/chainer/link.py", line 294, in __call__
    out = forward(*args, **kwargs)
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/chainer/links/connection/convolution_nd.py", line 162, in forward
    dilate=self.dilate, groups=self.groups)
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/chainer/functions/connection/convolution_nd.py", line 496, in convolution_nd
    y, = fnode.apply(args)
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/chainer/function_node.py", line 321, in apply
    outputs = self.forward(in_data)
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/chainer/functions/connection/convolution_nd.py", line 188, in forward
    return self._forward_xp(x, W, b, cuda.cupy)
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/chainer/functions/connection/convolution_nd.py", line 86, in _forward_xp
    return self._forward_xp_core(x, W, b, xp)
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/chainer/functions/connection/convolution_nd.py", line 146, in _forward_xp_core
    y = xp.tensordot(col, W, (axes, axes)).astype(x.dtype, copy=False)
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/cupy/linalg/product.py", line 183, in tensordot
    raise ValueError('Axis dimension mismatch')
ValueError: Axis dimension mismatch

A.3.2 FileNotFoundError: [Errno 2] No such file or directory: [file_path or dir_path]

原因
パスの指定間違い

対応
パスをチェック

エラー文例

attic@deeplearning:~/voice/become-yukarin$ python train.py dat/in_zun_1st/config_add_network_noise_cut_rerecord01_vr2_2.json dat/model/zun_1st_art503_2019_06_10_add_network_low_noise_cut_rerecord01_vr2
Traceback (most recent call last):
  File "train.py", line 37, in <module>
    dataset = create_dataset(config.dataset)
  File "/home/attic/voice/become-yukarin/become_yukarin/dataset/dataset.py", line 453, in create
    target_mean = acoustic_feature_load_process(config.target_mean_path, test=True)
  File "/home/attic/voice/become-yukarin/become_yukarin/dataset/dataset.py", line 185, in __call__
    d: Dict[str, Any] = numpy.load(path.expanduser(), allow_pickle=True).item()
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/numpy/lib/npyio.py", line 415, in load
    fid = open(os_fspath(file), "rb")
FileNotFoundError: [Errno 2] No such file or directory: 'dat/out_zun_1st/in_zunVoice_art503_44100_vr/mean.npy'

A.3.3 ModuleNotFoundError: No module named 'become_yukarin'

原因
PYTHONPATH の設定ミス。

対応
下記コマンドなどで、PYTHONPATH を設定してください。

cd /home/[user_name]/become-yukarin
PYTHONPATH=`pwd`

どうしてもうまくいかない場合は、先頭にPYTHONPATH=`pwd`を付ける。

PYTHONPATH=`pwd` [各種コマンド]

エラー文例(いくつかパターンがあるようです)

Traceback (most recent call last):
File "scripts/voice_conversion_test.py", line 11, in
from become_yukarin import AcousticConverter
ModuleNotFoundError: No module named 'become_yukarin'

A.4 第2段 学習データ作成時

A.4.1 LLVM ERROR: out of memory

原因
メモリ不足(だと思う)

対応
繰り返し実行すれば、エラーで変換できなかったデータを再計算してくれる。

エラー文例

attic@localhost:~/Dropbox/dev/deep_yukarin $ python become-yukarin/scripts/extract_spectrogram_pair.py -i dat/voice_src/voice_44100/aoi_voice_single/ -o dat/2nd_models/aoi/npy_single
...
LLVM ERROR: out of memory

A.4.2 error! test_data_sr/hoge.wav などで音声変換できない

追記
本家リポジトリに修正が入り、print(traceback.format_exc()) への修正は必要なくなりました!

原因
過去のケースでは、ffmpeg のインストールをしていない。
(これ、自分の環境構築の記事に書いてなくてすいません)

対応
下記の、エラー詳細出力の修正は必要なくなりました。最新の become-yukarin では修正済みとなっています。

ffmpeg のインストールで改善しない場合は、エラー表示から原因を探ってください!
わからなければ、コメントに投げて貰えれば、一緒に調べます!

ffmpeg のインストールで改善しない場合は、下記の手順でエラー出力をして、見てください。
エラートレース文が表示されます。

(1) script/super_resolution_test.py を編集する
エディタで super_resolution_test.py を開き 65行あたりにある。

traceback.format_exc()

print(traceback.format_exc())

に、書き換えてください。

(2) エラーが出た場合と同じように実行する
これにより、
error! test_data_sr/hoge.wav
の下にエラー詳細が表示されます。

A.4.3 Expect: in_types[0].shape[2] == in_types[1].shape[2] Actual: 6 != 7

原因
原因不明。
log 出力をする updater でエラーが出ているようですが、よくわからない。

become-yukarin の issue にも同様のエラーが報告されていますが、ヒホ様も思い当たる節がないとのことです。
https://github.com/Hiroshiba/become-yukarin/issues/39

対応
config.json(config_sr.json) の log_iterationを大きな値にする。

副作用として、学習の log ファイル(学習精度チェック用ファイル)が出力されなくなります。

    "log_iteration": 10000000000,

自分も同じエラーを出したことがありますが、色々いじっているうちに消えてしまいました。

最初から手順をやり直すことで治るのかもしれません。

エラー文例(いくつかパターンがあるようです)

/home/name/.local/lib/python3.6/site-packages/chainer/functions/normalization/batch_normalization.py:67: UserWarning: A batch with no more than one sample has been given to F.batch_normalization. F.batch_normalization will always output a zero tensor for such batches. This could be caused by incorrect configuration in your code (such as running evaluation while chainer.config.train=True), but could also happen in the last batch of training if non-repeating iterator is used.
UserWarning)
predictor/loss
Exception in main training loop:
Invalid operation is performed in: Concat (Forward)

Expect: in_types[0].shape[2] == in_types[1].shape[2]
Actual: 6 != 7
Traceback (most recent call last):
File "/home/name/.local/lib/python3.6/site-packages/chainer/training/trainer.py", line 309, in run
entry.extension(self)
File "/home/name/.local/lib/python3.6/site-packages/chainer/training/extensions/evaluator.py", line 157, in call
result = self.evaluate()
File "/home/name/.local/lib/python3.6/site-packages/chainer/training/extensions/evaluator.py", line 211, in evaluate
eval_func(in_arrays)
File "/media/name/ボリューム/become-yukarin-master/become_yukarin/updater/sr_updater.py", line 61, in forward
output = self.predictor(input)
File "/media/name/ボリューム/become-yukarin-master/become_yukarin/model/sr_model.py", line 101, in call
return self.decoder(self.encoder(x))
File "/media/name/ボリューム/become-yukarin-master/become_yukarin/model/sr_model.py", line 85, in call
h = F.concat([h, hs[-i - 1]])
File "/home/name/.local/lib/python3.6/site-packages/chainer/functions/array/concat.py", line 105, in concat
y, = Concat(axis).apply(xs)
File "/home/name/.local/lib/python3.6/site-packages/chainer/function_node.py", line 243, in apply
self.check_data_type_forward(in_data)
File "/home/name/.local/lib/python3.6/site-packages/chainer/function_node.py", line 328, in check_data_type_forward
self.check_type_forward(in_type)
File "/home/name/.local/lib/python3.6/site-packages/chainer/functions/array/concat.py", line 41, in check_type_forward
type_check.expect(in_types[0].shape[d] == in_types[i].shape[d])
File "/home/name/.local/lib/python3.6/site-packages/chainer/utils/type_check.py", line 524, in expect
expr.expect()
File "/home/name/.local/lib/python3.6/site-packages/chainer/utils/typecheck.py", line 482, in expect
'{0} {1} {2}'.format(left, self.inv, right))
Will finalize trainer extensions and updater before reraising the exception.
Traceback (most recent call last):
File "trainsr.py", line 84, in
trainer.run()
File "/home/name/.local/lib/python3.6/site-packages/chainer/training/trainer.py", line 320, in run
six.reraise(*sys.exc_info())
File "/home/name/.local/lib/python3.6/site-packages/six.py", line 693, in reraise
raise value
File "/home/name/.local/lib/python3.6/site-packages/chainer/training/trainer.py", line 309, in run
entry.extension(self)
File "/home/name/.local/lib/python3.6/site-packages/chainer/training/extensions/evaluator.py", line 157, in call
result = self.evaluate()
File "/home/name/.local/lib/python3.6/site-packages/chainer/training/extensions/evaluator.py", line 211, in evaluate
eval_func(in_arrays)
File "/media/name/ボリューム/become-yukarin-master/become_yukarin/updater/sr_updater.py", line 61, in forward
output = self.predictor(input)
File "/media/name/ボリューム/become-yukarin-master/become_yukarin/model/sr_model.py", line 101, in call
return self.decoder(self.encoder(x))
File "/media/name/ボリューム/become-yukarin-master/become_yukarin/model/sr_model.py", line 85, in call
h = F.concat([h, hs[-i - 1]])
File "/home/name/.local/lib/python3.6/site-packages/chainer/functions/array/concat.py", line 105, in concat
y, = Concat(axis).apply(xs)
File "/home/name/.local/lib/python3.6/site-packages/chainer/function_node.py", line 243, in apply
self.check_data_type_forward(in_data)
File "/home/name/.local/lib/python3.6/site-packages/chainer/function_node.py", line 328, in check_data_type_forward
self.check_type_forward(in_type)
File "/home/name/.local/lib/python3.6/site-packages/chainer/functions/array/concat.py", line 41, in checktype_forward
type_check.expect(in_types[0].shape[d] == in_types[i].shape[d])
File "/home/name/.local/lib/python3.6/site-packages/chainer/utils/typecheck.py", line 524, in expect
expr.expect()
File "/home/name/.local/lib/python3.6/site-packages/chainer/utils/type_check.py", line 482, in expect
'{0} {1} {2}'.format(left, self.inv, right))
chainer.utils.type_check.InvalidType:
Invalid operation is performed in: Concat (Forward)

Expect: in_types[0].shape[2] == in_types[1].shape[2]
Actual: 6 != 7
エラー文例

表示されない。
上記の対応をしないと、エラー文が出力されない。

B. yukarin

B.1 環境設定

imageio のバージョン不整合

原因
未特定

対応
エラーは出ているが、一応動く。

エラー文

ERROR: moviepy 1.0.0 has requirement imageio<2.5,>=2.0; python_version < "3.4", but you'll have imageio 2.5.0 which is incompatible.
ERROR: moviepy 1.0.0 has requirement imageio<3.0,>=2.5; python_version >= "3.4", but you'll have imageio 2.4.1 which is incompatible.

B.2 第1段 train.py 学習時のエラー

B.2.1 aligned_indexes 作り忘れ

原因
aligned_indexes 作り忘れ。

対応
aligned_indexesを作る

エラー文例

attic@deeplearning:~/voice/yukarin$ python train.py     ./dat/1st_models/zun_voice_set/config.json     ./dat/1st_models/zun_voice_set/zun_model
Exception in main training loop: Epoch size must be positive for an iterator that repeats.
Traceback (most recent call last):
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/chainer/training/trainer.py", line 316, in run
    update()
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/chainer/training/updaters/standard_updater.py", line 175, in update
    self.update_core()
  File "/home/attic/voice/yukarin/yukarin/updater.py", line 87, in update_core
    batch = self.get_iterator('main').next()
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/chainer/iterators/multiprocess_iterator.py", line 149, in __next__
    self.dataset_timeout)
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/chainer/iterators/multiprocess_iterator.py", line 392, in measure
    self.order_sampler, len(self.dataset))
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/chainer/iterators/_statemachine.py", line 21, in iterator_statemachine
    raise ValueError('Epoch size must be positive for an iterator '
Will finalize trainer extensions and updater before reraising the exception.
Traceback (most recent call last):
  File "train.py", line 107, in <module>
    trainer.run()
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/chainer/training/trainer.py", line 349, in run
    six.reraise(*exc_info)
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/six.py", line 693, in reraise
    raise value
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/chainer/training/trainer.py", line 316, in run
    update()
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/chainer/training/updaters/standard_updater.py", line 175, in update
    self.update_core()
  File "/home/attic/voice/yukarin/yukarin/updater.py", line 87, in update_core
    batch = self.get_iterator('main').next()
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/chainer/iterators/multiprocess_iterator.py", line 149, in __next__
    self.dataset_timeout)
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/chainer/iterators/multiprocess_iterator.py", line 392, in measure
    self.order_sampler, len(self.dataset))
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/chainer/iterators/_statemachine.py", line 21, in iterator_statemachine
    raise ValueError('Epoch size must be positive for an iterator '
ValueError: Epoch size must be positive for an iterator that repeats.

B.3 音声変換時のエラー

B.3.1 convert_loop エラー

原因
ライブラリの become-yukarin のバージョンが古いので convert_loop メソッドが見つからない

対応
ライブラリとしてインストールしている、become-yukarin を削除して、
キャッシュ無効化して再インストール。

pip uninstall became-yukarin
pip --no-cache-dir install -I git+https://github.com/Hiroshiba/become-yukarin

エラー文例

Traceback (most recent call last):
  File "scripts/voice_change.py", line 100, in process
    s_high = super_resolution.convert_loop(f_low.sp.astype(numpy.float32))
AttributeError: 'SuperResolution' object has no attribute 'convert_loop'

B.3.2 cupy.cuda.memory.OutOfMemoryError: out of memory to allocate

原因
GPU メモリが足りない?
音声合成処理をパラレルに実行しているので、直列化すれば改善するかも?
当初、音声周波数を44100Hzで実行していましたが、デフォルトの24000Hzで実行した時は、このエラーは出なかった。

対応 1(筆者未確認)
ヒホ様によると『generator_base_channelsの値を小さくすると解決するかも(チャンネル数がこの乗数に比例する)』

ヒホさんのツイート

対応 2(筆者未確認)
下記記事をためしてしてみる(プログラムをいじる必要あり)。
Unified Memoryを使ってGPUメモリよりも大きなモデルをChainerで扱う

対応 3
再起動。

エラー文例

Traceback (most recent call last):
  File "scripts/voice_change.py", line 100, in process
    s_high = super_resolution.convert_loop(f_low.sp.astype(numpy.float32))
  File "/home/attic/voice/become-yukarin/become_yukarin/super_resolution.py", line 73, in convert_loop
    o_warp = self.convert(f)
  File "/home/attic/voice/become-yukarin/become_yukarin/super_resolution.py", line 53, in convert
    out = self.model(inputs).data[0]
  File "/home/attic/voice/become-yukarin/become_yukarin/model/sr_model.py", line 101, in __call__
    return self.decoder(self.encoder(x))
  File "/home/attic/voice/become-yukarin/become_yukarin/model/sr_model.py", line 85, in __call__
    h = F.concat([h, hs[-i - 1]])
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/chainer/functions/array/concat.py", line 108, in concat
    y, = Concat(axis).apply(xs)
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/chainer/function_node.py", line 321, in apply
    outputs = self.forward(in_data)
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/chainer/functions/array/concat.py", line 52, in forward
    return xp.concatenate(xs, self.axis),
  File "/home/attic/.pyenv/versions/3.6.3/lib/python3.6/site-packages/cupy/manipulation/join.py", line 49, in concatenate
    return core.concatenate_method(tup, axis)
  File "cupy/core/_routines_manipulation.pyx", line 563, in cupy.core._routines_manipulation.concatenate_method
  File "cupy/core/_routines_manipulation.pyx", line 608, in cupy.core._routines_manipulation.concatenate_method
  File "cupy/core/_routines_manipulation.pyx", line 637, in cupy.core._routines_manipulation._concatenate
  File "cupy/core/core.pyx", line 134, in cupy.core.core.ndarray.__init__
  File "cupy/cuda/memory.pyx", line 518, in cupy.cuda.memory.alloc
  File "cupy/cuda/memory.pyx", line 1085, in cupy.cuda.memory.MemoryPool.malloc
  File "cupy/cuda/memory.pyx", line 1106, in cupy.cuda.memory.MemoryPool.malloc
  File "cupy/cuda/memory.pyx", line 934, in cupy.cuda.memory.SingleDeviceMemoryPool.malloc
  File "cupy/cuda/memory.pyx", line 949, in cupy.cuda.memory.SingleDeviceMemoryPool._malloc
  File "cupy/cuda/memory.pyx", line 697, in cupy.cuda.memory._try_malloc
cupy.cuda.memory.OutOfMemoryError: out of memory to allocate 402653184 bytes (total 3209814528 bytes)

B.3.3 ValueError: Mismatched dimensionality (spec size) between spectrogram (1025) and aperiodicity (513)

原因
音声特徴量抽出(scripts/extract_spectrogram_pair.py)をする際、pラメータなどの条件が違うデータが混入している。

対応
npyファイルを削除して、やり直す。

attic@ubuntu-win:~/voice/yukarin$ python scripts/voice_change_sereal.py     --voice_changer_model_dir './dat/1st_models/zun_voice_set/zun_model'     --voice_changer_config './dat/1st_models/zun_voice_set/config.json'     --voice_changer_model_iteration 450000     --super_resolution_model './dat/2nd_models/zun/predictor_140000.npz'     --super_resolution_config './dat/2nd_models/zun/config.json'     --input_statistics 'dat/1st_models/zun_voice_set/statistics/my.npy'     --target_statistics 'dat/1st_models/zun_voice_set/statistics/zun.npy'     --out_sampling_rate 41000     --dataset_target_wave_dir 'dat/voice_src/zun_voice_set/in_zunVoice_44100'     --dataset_input_wave_dir 'dat/1st_models/zun_voice_set/out_myVoice_44100'     --test_wave_dir './test_my_voice'     --output_dir './output/'     --gpu 0
Loaded acoustic converter model "dat/1st_models/zun_voice_set/zun_model/predictor_450000.npz"
Loaded super resolution model "dat/2nd_models/zun/predictor_140000.npz"
Traceback (most recent call last):
  File "scripts/voice_change_sereal.py", line 152, in process
    wave = super_resolution.convert_to_audio(s_high, acoustic_feature=f_low_sr, sampling_rate=rate)
  File "/home/attic/voice/become-yukarin/become_yukarin/super_resolution.py", line 109, in convert_to_audio
    frame_period=self._param.acoustic_feature_param.frame_period,
  File "pyworld/pyworld.pyx", line 430, in pyworld.pyworld.synthesize
ValueError: Mismatched dimensionality (spec size) between spectrogram (1025) and aperiodicity (513)
Traceback (most recent call last):
  File "scripts/voice_change_sereal.py", line 152, in process
    wave = super_resolution.convert_to_audio(s_high, acoustic_feature=f_low_sr, sampling_rate=rate)
  File "/home/attic/voice/become-yukarin/become_yukarin/super_resolution.py", line 109, in convert_to_audio
    frame_period=self._param.acoustic_feature_param.frame_period,
  File "pyworld/pyworld.pyx", line 430, in pyworld.pyworld.synthesize
ValueError: Mismatched dimensionality (spec size) between spectrogram (1025) and aperiodicity (513)
Traceback (most recent call last):
  File "scripts/voice_change_sereal.py", line 152, in process
    wave = super_resolution.convert_to_audio(s_high, acoustic_feature=f_low_sr, sampling_rate=rate)
  File "/home/attic/voice/become-yukarin/become_yukarin/super_resolution.py", line 109, in convert_to_audio
    frame_period=self._param.acoustic_feature_param.frame_period,
  File "pyworld/pyworld.pyx", line 430, in pyworld.pyworld.synthesize
ValueError: Mismatched dimensionality (spec size) between spectrogram (1025) and aperiodicity (513)

b.3.4 ModuleNotFoundError: No module named '_tkinter'

原因
tkinter がない

対応

sudo apt install python3-tk

それでダメなら、下記コマンド等で python を削除して最初から pip のインストールをやり直す

pyenv uninstall 3.6.X
pyenv install 3.6.X

エラー文例

yoshikazuoota@localhost:~/Documents/voice/yukarin $ python scripts/voice_change_serial.py \
    --voice_changer_model_dir './dat/1st_models/zun_voice_set/zun_model' \
    --voice_changer_config './dat/1st_models/zun_voice_set/config.json' \
    --voice_changer_model_iteration 450000 \
    --super_resolution_model './dat/2nd_models/zun/predictor_140000.npz' \
    --super_resolution_config './dat/2nd_models/zun/config.json' \
    --input_statistics 'dat/1st_models/zun_voice_set/statistics/my.npy' \
    --target_statistics 'dat/1st_models/zun_voice_set/statistics/zun.npy' \
    --out_sampling_rate 41000 \
    --dataset_target_wave_dir 'dat/voice_src/zun_voice_set/in_zunVoice_44100' \
    --dataset_input_wave_dir 'dat/1st_models/zun_voice_set/out_myVoice_44100' \
    --test_wave_dir './test_my_voice' \
    --output_dir './output/'
Traceback (most recent call last):
  File "scripts/voice_change_sereal.py", line 9, in <module>
    import matplotlib.pyplot as plt
  File "/Users/yoshikazuoota/.pyenv/versions/3.6.8/lib/python3.6/site-packages/matplotlib/pyplot.py", line 2349, in <module>
    switch_backend(rcParams["backend"])
  File "/Users/yoshikazuoota/.pyenv/versions/3.6.8/lib/python3.6/site-packages/matplotlib/pyplot.py", line 215, in switch_backend
    backend_mod = importlib.import_module(backend_name)
  File "/Users/yoshikazuoota/.pyenv/versions/3.6.8/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/Users/yoshikazuoota/.pyenv/versions/3.6.8/lib/python3.6/site-packages/matplotlib/backends/backend_tkagg.py", line 1, in <module>
    from . import _backend_tk
  File "/Users/yoshikazuoota/.pyenv/versions/3.6.8/lib/python3.6/site-packages/matplotlib/backends/_backend_tk.py", line 6, in <module>
    import tkinter as tk
  File "/Users/yoshikazuoota/.pyenv/versions/3.6.8/lib/python3.6/tkinter/__init__.py", line 36, in <module>
    import _tkinter # If this fails your Python may not be configured for Tk
ModuleNotFoundError: No module named '_tkinter'

最後に

他に発見したエラーがあれば、教えてください。
あと、自分にコメントくれれば、対応方法を調べてみます(解決できるとは言っていない)。

1人でも多くの人が、楽しい音質変換ライフを送れることを!

9
10
8

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
10