score / quick_test.py
coisini9293's picture
Upload 28 files
5ed6698 verified
Raw History Blame Contribute Delete
1.75 kB
#!/usr/bin/env python3
"""
快速测试修正后的basic-pitch使用方法
"""
import os
import librosa
from basic_pitch.inference import predict
def quick_test():
print("快速测试basic-pitch...")
# 检查音频文件
audio_path = "song.mp3"
if not os.path.exists(audio_path):
print(f"错误:音频文件 {audio_path} 不存在")
return False
# 创建输出目录
output_dir = "test_output"
os.makedirs(output_dir, exist_ok=True)
try:
# 加载音频文件
print("正在加载音频文件...")
audio, sr = librosa.load(audio_path, sr=None)
print(f"音频采样率: {sr} Hz, 时长: {len(audio)/sr:.2f} 秒")
# 使用predict函数进行转录
print("开始转录...")
model_output, midi_data, note_events = predict(
audio_path,
onset_threshold=0.5,
frame_threshold=0.3,
minimum_note_length=0.01,
minimum_frequency=80.0,
maximum_frequency=8000.0,
melodia_trick=True,
midi_tempo=120
)
# 保存MIDI文件
midi_path = os.path.join(output_dir, "quick_test_output.mid")
midi_data.write(midi_path)
# 检查结果
files = os.listdir(output_dir)
print(f"输出目录中的文件: {files}")
if os.path.exists(midi_path):
print(f"✅ 成功生成MIDI文件: {midi_path}")
return True
else:
print("❌ 未找到MIDI文件")
return False
except Exception as e:
print(f"❌ 测试失败: {e}")
return False
if __name__ == "__main__":
quick_test()