27 lines
		
	
	
		
			660 B
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			660 B
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env python3
 | |
| # encoding: utf-8
 | |
| 
 | |
| import sys
 | |
| 
 | |
| import torchaudio
 | |
| torchaudio.set_audio_backend("sox_io")
 | |
| 
 | |
| scp = sys.argv[1]
 | |
| dur_scp = sys.argv[2]
 | |
| 
 | |
| with open(scp, 'r') as f, open(dur_scp, 'w') as fout:
 | |
|     cnt = 0
 | |
|     total_duration = 0
 | |
|     for l in f:
 | |
|         items = l.strip().split()
 | |
|         wav_id = items[0]
 | |
|         fname = items[1]
 | |
|         cnt += 1
 | |
|         waveform, rate = torchaudio.load(fname)
 | |
|         frames = len(waveform[0])
 | |
|         duration = frames / float(rate)
 | |
|         total_duration += duration
 | |
|         fout.write('{} {}\n'.format(wav_id, duration))
 | |
|     print('process {} utts'.format(cnt))
 | |
|     print('total {} s'.format(total_duration))
 | 
