*话不多说上代码*
import sys
sys.path.append("../")
import os
import os.path as osp
import multiprocessing
import numpy as np
import pickle
import pdb
import subprocess
import librosa
import glob
print('1')
source_video_path='dataset/videos'
save_wav_path='audio_wav'
num_workers=4
os.makedirs(save_wav_path,exist_ok = True)
pool = multiprocessing.Pool(processes=num_workers)
for video_path in glob.glob(source_video_path+'/*.mp4'):
video_id = video_path.split('/')[-1].split(".mp4")[0]
source_movie_fn = osp.join(source_video_path,"{}.mp4".format(video_id))
out_video_fn = osp.join(save_wav_path,"{}.wav".format(video_id))
call_list = ['ffmpeg']
call_list += ['-v', 'error']
call_list += ['-y']
call_list += [
'-i',
source_movie_fn,
'-f',
'wav']
call_list += ['-map_chapters', '-1']
call_list += [out_video_fn]
subprocess.call(call_list)
print(video_id)
if not osp.exists(out_video_fn):
wav_np = np.zeros((16000*4),np.float32)
librosa.output.write_wav(out_video_fn,wav_np,sr=16000)
print(video_id,"not exist")
pool.close()
pool.join()
pip install librosa --ignore-installed llvmlite -i https://pypi.douban.com/simple --user
```python
sudo apt-get install libsndfile1-dev ffmpeg imagemagick nfs-kernel-server