山内セミナーⅠ(2021/06/16)

関連サイトと資料

必要なライブラリ(numpy, scipy, soundfile, pyaudio, matplotlib)のインストール

  1. 下の図の赤丸をクリックして、コマンドプロンプトを開いてください。


  2. 「conda activate seminar1」と入力して、エンターキーを押してください。 プロンプトの左側のカッコの中の表示が「base」から「seminar1」に変化し、 仮想環境「seminar1」に入ったことを示しています。


  3. 仮想環境「seminar1」で、「pip install numpy」と入力して、エンターキーを押してください。 大学で作業をしている時には、「pip install numpy --proxy=ccproxy2.kanagawa-it.ac.jp:10080」と入力してください。

  4. 仮想環境「seminar1」で、「pip install scipy」と入力して、エンターキーを押してください。 大学で作業をしている時には、「pip install scipy --proxy=ccproxy2.kanagawa-it.ac.jp:10080」と入力してください。

  5. 仮想環境「seminar1」で、「pip install soundfile」と入力して、エンターキーを押してください。 大学で作業をしている時には、「pip install soundfile --proxy=ccproxy2.kanagawa-it.ac.jp:10080」と入力してください。

  6. 仮想環境「seminar1」で、「pip install pyaudio」と入力して、エンターキーを押してください。 大学で作業をしている時には、「pip install pyaudio --proxy=ccproxy2.kanagawa-it.ac.jp:10080」と入力してください。

  7. 仮想環境「seminar1」で、「pip install matplotlib」と入力して、エンターキーを押してください。 大学で作業をしている時には、「pip install matplotlib --proxy=ccproxy2.kanagawa-it.ac.jp:10080」と入力してください。

サンプルプログラム(1)

list1.py
import wave
import numpy as np
  
wav = wave.open('sample1.wav', 'r')
  
wdata = wav.readframes(wav.getnframes())
data = np.frombuffer(wdata, dtype='int16')
  
print('Sampling rate: {0}'.format(wav.getframerate()))
print(data.shape)
print(data)
print(data.dtype)
  
wav.close()
    

list2.py
from scipy.io.wavfile import read
  
fs, data = read('sample1.wav')
  
print('Sampling rate: {0}'.format(fs))
print(data.shape)
print(data)
print(data.dtype)
    

list3.py
import soundfile as sf
  
data, fs = sf.read('sample1.wav')
  
print('Sampling rate: {0}'.format(fs))
print(data.shape)
print(data)
print(data.dtype)
    

list4.py
import wave
import pyaudio
  
wav = wave.open('sample1.wav', 'r')
data = wav.readframes(wav.getnframes())
  
p = pyaudio.PyAudio()
stream = p.open(format=p.get_format_from_width(wav.getsampwidth()),
    channels=wav.getnchannels(),
    rate=wav.getframerate(),
    output=True)
  
stream.write(data)
  
stream.stop_stream()
stream.close()
p.terminate()
wav.close()
    

list5a.py(モノラル)
import wave
import numpy as np
import matplotlib.pyplot as plt
  
wav = wave.open('sample1.wav', 'r')
wdata = wav.readframes(wav.getnframes()*wav.getnchannels())
data = np.frombuffer(wdata, dtype='int16')
  
plt.plot(data)
plt.show()
  
wav.close()
    

list5b.py(ステレオ)
import soundfile as sf
import matplotlib.pyplot as plt
  
data, fs = sf.read('loop1.wav')
l_ch = data[:, 0]
r_ch = data[:, 1]
  
plt.figure(1)
plt.plot(l_ch)
plt.title('Left Channel')
  
plt.figure(2)
plt.plot(r_ch)
plt.title('Right Channel')
  
plt.show()
    

list5c.py(ステレオ)
import soundfile as sf
import matplotlib.pyplot as plt
  
data, fs = sf.read('loop1.wav')
l_ch = data[:, 0]
r_ch = data[:, 1]
  
fig = plt.figure()
ax1 = fig.add_subplot(2, 1, 1)
ax2 = fig.add_subplot(2, 1, 2)
  
ax1.plot(l_ch)
ax1.set_title('Left Channel')
  
ax2.plot(r_ch)
ax2.set_title('Right Channel')
  
plt.show()