

任意のSignal-to-Noise比の音声波形をPythonで作ろう！  
<https://engineering.linecorp.com/ja/blog/voice-waveform-arbitrary-signal-to-
noise-ratio-python/>

こちらのプログラムを実行した所、以下のメッセージが出ました。  
これの解決方法を教えていただきたいです。

TypeError: 'int' object is not subscriptable

### 発生している問題・エラーメッセージ

[code]

    ---------------------------------------------------------------------------
    TypeError                                 Traceback (most recent call last)
    <ipython-input-3-f3a553f9c2cc> in <module>
         24 
         25 if __name__ == '__main__':
    ---> 26     args = get_args()
         27 
         28     clean_file = args.clean_file
    
    <ipython-input-3-f3a553f9c2cc> in get_args()
         19     parser.add_argument('--output_noise_file', type=str, default='')
         20     parser.add_argument('--output_noisy_file', type=str, default='')
    ---> 21     parser.add_argument(snr, type=float)
         22     args = parser.parse_args()
         23     return args
    
    ~\anaconda3\lib\argparse.py in add_argument(self, *args, **kwargs)
       1345         # argument
       1346         chars = self.prefix_chars
    -> 1347         if not args or len(args) == 1 and args[0][0] not in chars:
       1348             if args and 'dest' in kwargs:
       1349                 raise ValueError('dest supplied twice for positional argument')
    
    TypeError: 'int' object is not subscriptable
    
    
[/code]

### 該当のソースコード

[code]

    import argparse
    import array
    import math
    import numpy as np
    import random
    import wave
    
    clean_file = 音声ファイル
    noise_file = ノイズファイル
    
    snr = 20
    
    
    def get_args():
        parser = argparse.ArgumentParser()
        parser.add_argument(clean_file, type=str)
        parser.add_argument(noise_file, type=str)
        parser.add_argument('--output_clean_file', type=str, default='')
        parser.add_argument('--output_noise_file', type=str, default='')
        parser.add_argument('--output_noisy_file', type=str, default='')
        parser.add_argument(snr, type=float)
        args = parser.parse_args()
        return args
            
    if __name__ == '__main__':
        args = get_args()
    
        clean_file = args.clean_file
        noise_file = args.noise_file
        snr = args.snr
    
        clean_wav = wave.open(clean_file, "r")
        noise_wav = wave.open(noise_file, "r")
    
[/code]

### 試したこと

該当サイトに記されているrequired=True等、一部プログラムが異なっていますが、  
パスの指定のために外しただけなので特に問題ありません。


CC BY-SA 4.0
2021-11-16T16:53:40.163
83661
2022-04-20T11:11:57.053
2022-04-20T11:11:57.053
3060
48401
question
python python3
'int' object is not subscriptableの解消方法