#!/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()