90384


pyaudioを使ったプログラムで録音すると  
なぜか音割れが発生します  
ほかの録音アプリ等ではそのようなことは起きていませんので（標準で入っていたボイスレコーダー等）

このコードが原因かと疑っています  
初心者なのでなぜこのようなことが起きるのかまったくわかりません  
わかる人教えてください

[code]

    import pyaudio
    import matplotlib.pyplot as plot
    import wave 
    import numpy as np
    if __name__ == '__main__':
        main()
    """
    def audiostop(audio, stream,CHUNK,FORMAT,CHANNELS,RATE,RECORD_SECONDS):
        stream.stop_stream()
        stream.close()
        audio.terminate()
    def audio_save(audio,stream,CHUNK,FORMAT,CHANNELS,RATE,RECORD_SECONDS):
        wf = wave.open("rokuon5.wav", 'wb')
        wf.setnchannels(CHANNELS)
        wf.setsampwidth(audio.get_sample_size(FORMAT))
        wf.setframerate(RATE)
        wf.writeframes(b''.join(frames))
        wf.close()
    
    
    
    
    def     read_plot_data(stream,frames,CHUNK,FORMAT,CHANNELS,RATE,RECORD_SECONDS):
        data = stream.read(CHUNK)
        frames.append(data)
    
    audiodata = np.frombuffer(data, dtype='int16')#numpyへ変換
    print(type(audiodata))
    #plot.plot(audiodata)
    #plot.draw()
    #plot.pause(0.001)
    #plot.cla()
    
[/code]

CHUNK = 1024  
FORMAT = pyaudio.paInt16 # int16型  
CHANNELS = 1 # ステレオ  
RATE = 44100 # 441.kHz  
RECORD_SECONDS = 3

if **name** == ' **main** ':  
audio = pyaudio.PyAudio()  
stream = audio.open( format = FORMAT,  
#record_time=10,  
rate = RATE,  
channels = CHANNELS,  
input_device_index = 0,  
input = True,  
frames_per_buffer = CHUNK)  
frames = []  
for _ in range(int(RATE/CHUNK*RECORD_SECONDS)):  
try:  
read_plot_data(stream,frames,CHUNK,FORMAT,CHANNELS,RATE,RECORD_SECONDS)  
except KeyboardInterrupt:  
break

[code]

    audiostop(audio,stream,CHUNK,FORMAT,CHANNELS,RATE,RECORD_SECONDS)
    audio_save(audio,stream,CHUNK,FORMAT,CHANNELS,RATE,RECORD_SECONDS)
    
[/code]


CC BY-SA 4.0
2022-08-03T18:13:31.540
90369
2022-08-04T23:20:28.180
2022-08-04T23:20:28.180
3060
51500
question
python audio
pyaudioで録音すると音割れする


解決しました どうやら再生側の原因でした

別の方法で再生した場合きれいに取れてました


CC BY-SA 4.0
2022-08-04T19:19:03.003
90384
2022-08-04T19:19:03.003
51500
90369
answer