Pythonを使ってWAVファイルをトリミングする方法について説明します。ここでは、scipy
とnumpy
を使用してWAVファイルを読み込み、特定の部分を切り取る方法を示します。
まず、scipy.io.wavfile
を使用してWAVファイルを読み込みます。
import scipy.io.wavfile
fs1, y1 = scipy.io.wavfile.read(filename)
次に、トリミングしたい部分の開始と終了の時間を指定します。この例では、7.2秒から19.8秒、35.3秒から67.23秒、103秒から110秒の部分を切り取ります。
l1 = numpy.array([ [7.2,19.8], [35.3,67.23], [103,110 ] ])
l1 = ceil(l1*fs1) # WAVファイルのインデックスに変換します
最後に、指定した部分を切り取り、新しいWAVファイルを作成します。
newWavFileAsList = []
for elem in l1:
startRead = elem[0]
endRead = elem[1]
if startRead >= y1.shape[0]:
startRead = y1.shape[0]-1
if endRead >= y1.shape[0]:
endRead = y1.shape[0]-1
newWavFileAsList.extend(y1[startRead:endRead])
newWavFile = numpy.array(newWavFileAsList)
scipy.io.wavfile.write(outputName, fs1, newWavFile)
以上のコードを使用すると、指定した部分を切り取った新しいWAVファイルを作成することができます。この方法は、音声データの特定の部分を取り出すための基本的な手法であり、さまざまな音声処理タスクに応用することができます。Pythonの強力なライブラリを活用することで、複雑な音声処理タスクも簡単に実現することが可能です。