

[以前の質問（FileNotFoundErrorで.pyファイルの先に.tsvファイルが存在する）](https://ja.stackoverflow.com/q/84047)
の続きになります。

以下のコード

[code]

    #data_processing.
    from mozilla_common_voice import MozillaCommonVoiceDataset
    from urban_sound_8K import UrbanSound8K
    from dataset import Dataset
    import warnings
    
    warnings.filterwarnings(action='ignore')
    
    mozilla_basepath = r'C:\Users\ユーザ名\cnn-audio-denoiser-master\data_processing\en'
    urbansound_basepath = r'C:\Users\ユーザ名\cnn-audio-denoiser-master\data_processing\UrbanSound8K'
    
    mcv = MozillaCommonVoiceDataset(mozilla_basepath, val_dataset_size=1000)
    clean_train_filenames, clean_val_filenames = mcv.get_train_val_filenames()
    
    us8K = UrbanSound8K(urbansound_basepath, val_dataset_size=200)
    noise_train_filenames, noise_val_filenames = us8K.get_train_val_filenames()
    
    windowLength = 256
    config = {'windowLength': windowLength,
              'overlap': round(0.25 * windowLength),
              'fs': 16000,
              'audio_max_duration': 0.8}
    
    val_dataset = Dataset(clean_val_filenames, noise_val_filenames, **config)
    val_dataset.create_tf_record(prefix='val', subset_size=2000)
    
[/code]

の一番最後の行（val_dataset.create_tf_record(prefix='val',
subset_size=2000)）で以下のエラーが出てしまいます。

[code]

    UnicodeDecodeError                        Traceback (most recent call last)
    <ipython-input-18-efacc0a033b7> in <module>
         23 
         24 val_dataset = Dataset(clean_val_filenames, noise_val_filenames, **config)
    ---> 25 val_dataset.create_tf_record(prefix='val', subset_size=2000)
         26 
         27 train_dataset = Dataset(clean_train_filenames, noise_train_filenames, **config)
    
    ~\dataset.py in create_tf_record(self, prefix, subset_size, parallel)
        139                 continue
        140 
    --> 141             writer = tf.io.TFRecordWriter(tfrecord_filename)
        142             clean_filenames_sublist = self.clean_filenames[i:i + subset_size]
        143 
    
    ~\anaconda3\lib\site-packages\tensorflow\python\lib\io\tf_record.py in __init__(self, path, options)
        296 
        297     # pylint: disable=protected-access
    --> 298     super(TFRecordWriter, self).__init__(
        299         compat.as_bytes(path), options._as_record_writer_options())
        300     # pylint: enable=protected-access
    
    UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8e in position 65: invalid start byte
    
[/code]

こちらのUnicodeDecodeErrorの対処法について調べたところ、`encoding='shift_jis'` というコードがあったので

[code]

    val_dataset.create_tf_record(prefix='val', subset_size=2000,encoding='shift_jis')
    
[/code]

で実行してみましたが、

[code]

    TypeError: create_tf_record() got an unexpected keyword argument 'encoding'
    
[/code]

と出たのでおそらくこの形ではないのかと思いました。

こちらのエラーについて、何か解決策を頂きたいです。

不足している情報があるようでしたらそれを教えていただいた後、可能な限り記述します。  
よろしくお願いします。


CC BY-SA 4.0
2021-12-13T17:43:33.633
84117
2022-04-20T11:10:29.217
2022-04-20T11:10:29.217
3060
48401
question
python python3 anaconda anaconda3
深層学習ノイズ除去におけるUnicodeDecodeErrorの解決方法