荣耀猎人V700用了英伟达的GTX 2060战术核显卡,显然是可以用来跑深度学习或者玩具框架的。有时候我需要一个“能跑网络就行”的东西,因为毕竟有些情况下并不需要性能或者说准确性太高,比如拿YOLO帮朋友跑交通流的视频——反正跑出来就行了。
为此我专门去问了 @到处挖坑蒋玉成 蒋老板,“有没有什么可以通用的反映深度学习性能的模型”,然后得到的回复是“没有”。
既然这样,那我就按兴趣,用字节跳动最近发布的“钢琴扒带”工具来测试效果了。项目Git如下:
https://github.com/bytedance/piano_transcriptiongithub.com
配置我直接用的cuda 11.1+对应的PyTorch。
cuda可以直接官网exe:
CUDA 工具包 11.1 下载developer.nvidia.com
PyTorch去官网可以找到对应的安装命令:
pip install torch===1.7.0+cu110 torchvision===0.8.1+cu110 torchaudio===0.7.0 -f https://download.pytorch.org/whl/torch_stable.html
字节跳动钢琴扒带的命令:
pip install piano_transcription_inference
漫长的安装好了,还差一步——字节跳动的包不含权重,权重的话貌似需要自己下载,虽然包里有自动下载的命令,但是我这边执行总是失败:
if not os.path.exists(checkpoint_path) or os.path.getsize(checkpoint_path) <1.6e8:create_folder(os.path.dirname(checkpoint_path))print(&#39;Total size: ~165 MB&#39;)zenodo_path &#61; &#39;https://zenodo.org/record/4034264/files/CRNN_note_F1%3D0.9677_pedal_F1%3D0.9186.pth?download&#61;1&#39;os.system(&#39;wget -O "{}" "{}"&#39;.format(checkpoint_path, zenodo_path))
所以直接把那个网址拿来下载权重&#xff1a;
https://zenodo.org/record/4034264/files/CRNN_note_F1%3D0.9677_pedal_F1%3D0.9186.pth?download&#61;1
下载完了可以改个名字&#xff0c;我就叫“note.pth”了。
官网给的脚本坑在checkpoint_path&#xff0c;这个我是自己下载然后挂在项目根目录的&#xff0c;不然没有权重跑个卵。
from piano_transcription_inference import PianoTranscription, sample_rate, load_audio
import osdef mp32mid(fp):# Load audio(audio, _) &#61; load_audio(fp, sr&#61;sample_rate, mono&#61;True)print(&#39;loaded&#39;)# Transcriptortranscriptor &#61; PianoTranscription(device&#61;&#39;cuda&#39;, checkpoint_path&#61;&#39;note.pth&#39;) # &#39;cuda&#39; | &#39;cpu&#39;fname&#61;fp.split(&#39;&#39;)[-1]print(fname&#43;&#39; is processing...&#39;)# Transcribe and write out to MIDI filetranscribed_dict &#61; transcriptor.transcribe(audio, fname &#43; &#39;.mid&#39;)def file_name(file_dir):l &#61; []for root, dirs, files in os.walk(file_dir):for file in files:if os.path.splitext(file)[1] &#61;&#61; &#39;.mp3&#39;: # 想要保存的文件格式l.append(os.path.join(root, file))return lprint(&#39;start&#39;)
for l in file_name(&#39;D:CloudMusic&#39;):print(l)mp32mid(l)
pass
跑出来的结果是喜出望外的&#xff0c;对于钢琴音色准确率极高&#xff0c;但节奏是错的。
这时候可以使用logic pro自带的“智能速度”去修正这个midi的节拍、速度等信息。
松本文纪的曲子一般喜欢加很大的混响&#xff0c;所以识别会把一些ECHO当成是钢琴音符识别。
但是这首ReSound Wave的鸟之诗改编版就识别的很好。我把一个视频翻录了一下&#xff0c;配上bgm。
【Lia——鳥の詩 (鸟之诗)】夏之AIR&#xff0c;千年守护郁郁葱葱_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliwww.bilibili.com
知乎视频www.zhihu.com
原曲地址&#xff1a;
Feather in Dreamsmusic.163.com
显然力度动态不如原曲&#xff0c;不过这个不大影响制谱。应该听得出原曲和mp3->mid->mp3后的差距&#xff0c;还是挺明显的。
转码的速度也还行&#xff0c;大概两分钟一首&#xff0c;还算比较快。
翻录的过程中发现Mate40Pro的录像能力真的有大幅度提升&#xff0c;放Mate30Pro早过曝了……后面再详细对比吧。
喜欢的朋友可以尝试一下~
猎人可以用来作为生产力工具&#xff0c;存乎一心。
感谢字节跳动开源了如此好的转码工具。