Merge remote-tracking branch 'origin/main'

This commit is contained in:
Plachta
2023-03-06 16:21:20 +08:00
3 changed files with 71 additions and 40 deletions
+17 -17
View File
@@ -1,18 +1,18 @@
import os
import torchaudio
raw_audio_dir = "./raw_audio/"
denoise_audio_dir = "./denoised_audio/"
filelist = list(os.walk(raw_audio_dir))[0][2]
for file in filelist:
if file.endswith(".wav"):
os.system(f"demucs --two-stems=vocals {raw_audio_dir}{file}")
for file in filelist:
file = file.replace(".wav", "")
wav, sr = torchaudio.load(f"./separated/htdemucs/{file}/vocals.wav", frame_offset=0, num_frames=-1, normalize=True,
channels_first=True)
# merge two channels into one
wav = wav.mean(dim=0).unsqueeze(0)
if sr != 22050:
wav = torchaudio.transforms.Resample(orig_freq=sr, new_freq=22050)(wav)
import os
import torchaudio
raw_audio_dir = "./raw_audio/"
denoise_audio_dir = "./denoised_audio/"
filelist = list(os.walk(raw_audio_dir))[0][2]
for file in filelist:
if file.endswith(".wav"):
os.system(f"demucs --two-stems=vocals {raw_audio_dir}{file}")
for file in filelist:
file = file.replace(".wav", "")
wav, sr = torchaudio.load(f"./separated/htdemucs/{file}/vocals.wav", frame_offset=0, num_frames=-1, normalize=True,
channels_first=True)
# merge two channels into one
wav = wav.mean(dim=0).unsqueeze(0)
if sr != 22050:
wav = torchaudio.transforms.Resample(orig_freq=sr, new_freq=22050)(wav)
torchaudio.save(denoise_audio_dir + file + ".wav", wav, 22050, channels_first=True)
+32 -18
View File
@@ -1,23 +1,37 @@
from google.colab import files
import shutil
import os
import random
import shutil
from concurrent.futures import ThreadPoolExecutor
from google.colab import files
basepath = os.getcwd()
uploaded = files.upload() # 上传文件
uploaded = files.upload() # 上传文件
for filename in uploaded.keys():
assert(filename.endswith(".txt")), "speaker-videolink info could only be .txt file!"
assert (filename.endswith(".txt")), "speaker-videolink info could only be .txt file!"
shutil.move(os.path.join(basepath, filename), os.path.join("./speaker_links.txt"))
with open("./speaker_links.txt", 'r', encoding='utf-8') as f:
lines = f.readlines()
speakers = []
for line in lines:
line = line.replace("\n", "").replace(" ", "")
if line == "":
continue
speaker, link = line.split("|")
if speaker not in speakers:
speakers.append(speaker)
# download link
import random
filename = speaker + "_" + str(random.randint(0, 1000000))
os.system(f"youtube-dl -f 0 {link} -o ./video_data/{filename}.mp4")
def generate_infos():
infos = []
with open("./speaker_links.txt", 'r', encoding='utf-8') as f:
lines = f.readlines()
for line in lines:
line = line.replace("\n", "").replace(" ", "")
if line == "":
continue
speaker, link = line.split("|")
filename = speaker + "_" + str(random.randint(0, 1000000))
infos.append({"link": link, "filename": filename})
return infos
def download_video(info):
link = info["link"]
filename = info["filename"]
os.system(f"youtube-dl -f 0 {link} -o ./video_data/{filename}.mp4")
if __name__ == "__main__":
infos = generate_infos()
with ThreadPoolExecutor(max_workers=os.cpu_count()) as executor:
executor.map(download_video, infos)
+22 -5
View File
@@ -1,10 +1,27 @@
from moviepy.editor import AudioFileClip
import os
from concurrent.futures import ThreadPoolExecutor
from moviepy.editor import AudioFileClip
video_dir = "./video_data/"
audio_dir = "./raw_audio/"
filelist = list(os.walk(video_dir))[0][2]
for file in filelist:
if file.endswith(".mp4"):
my_audio_clip = AudioFileClip(video_dir + file)
my_audio_clip.write_audiofile(audio_dir + file.rstrip(".mp4") + ".wav")
def generate_infos():
videos = []
for file in filelist:
if file.endswith(".mp4"):
videos.append(file)
return videos
def clip_file(file):
my_audio_clip = AudioFileClip(video_dir + file)
my_audio_clip.write_audiofile(audio_dir + file.rstrip(".mp4") + ".wav")
if __name__ == "__main__":
infos = generate_infos()
with ThreadPoolExecutor(max_workers=os.cpu_count()) as executor:
executor.map(clip_file, infos)