前提
jupyter notebookにて、サンプルwavファイル"20200720-164610.wav"をスタート(0秒)から0.1秒ずつ進めながら1秒単位で分割出力したいと思っています。
しかし、下記のプログラムでは音声が同じwavファイルが1秒単位で次々に出力されるのみです。
どこが問題か分からないので、ご教授の程お願いいたします。
該当コード
mport wave from pydub import AudioSegment import glob import os os.chdir('C://Users//karita//sound//data') #パス指定 sound=AudioSegment.from_file("20200720-164610.wav",format="wav") #ファイルを読み出し wavf = '20200720-164610.wav' wr = wave.open(wavf, 'r') # waveファイルが持つ性質を取得 ch = wr.getnchannels() width = wr.getsampwidth() fr = wr.getframerate() fn = wr.getnframes() print("チャンネル: ", ch) print("サンプル長: ", width) print("サンプリンググレート: ", fr) print("全オーディオフレーム数: ", fn) print("Params: ", wr.getparams()) print("サンプル時間: ", 1.0 * fn / fr)
チャンネル: 2
サンプル長: 2
サンプリンググレート: 44100
全オーディオフレーム数: 30016667
Params: _wave_params(nchannels=2, sampwidth=2, framerate=44100, nframes=30016667, comptype='NONE', compname='not compressed')
サンプル時間: 680.650045351474
st=0 et=st+1000 int=100 sound1=sound[st:et] while et < fn / fr * 1000 : print(et) print(fn / fr * 1000) #出力ファイル名を"output.wav"(後に改名) sound1.export("output.wav",format="wav") old_name='output.wav' #出力ファイル番号9桁 zero_i = "{0:09d}".format(st) # 新ファイル名を作る new_name = zero_i + ".wav" # 改名する --- (*5) os.rename(old_name, new_name) # 状況を報告 print(old_name + "→" + new_name) #切り出し時間(start:end) st=st+int #0.1秒ずつスタート時間をずらす et=st+1000 #stから1秒単位で分割
1000 #et
680650.045351474 #サンプル時間
output.wav→000000000.wav #改名
1100
680650.045351474
output.wav→000000100.wav
1200
680650.045351474
output.wav→000000200.wav
1300
680650.045351474
output.wav→000000300.wav
1400
680650.045351474
output.wav→000000400.wav
1500
680650.045351474
output.wav→000000500.wav
・
・
・
補足事項
windows10
python3.7.4
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。