音频类型识别方案-audioset_tagging

audioset_tagging 

github上开源的音频识别模型,可以识别音频文件的类型并打分给出标签占比,如图

@echo off
set CHECKPOINT_PATH="module/Cnn14_mAP=0.431.pth"
set MODEL_TYPE="Cnn14"
set CUDA_VISIBLE_DEVICES=0
python pytorch\inference.py audio_tagging --model_type=%MODEL_TYPE% --checkpoint_path=%CHECKPOINT_PATH% --audio_path="resources/hansheng.mp3" --cuda
pause
 

音频类型识别方案-audioset_tagging_第1张图片

[
  "GPU number: 1",
  "Animal: 0.374",
  "Roar: 0.250",
  "Dog: 0.221",
  "Domestic animals, pets: 0.187",
  "Snoring: 0.171",
  "Grunt: 0.157",
  "Growling: 0.111",
  "Speech: 0.084",
  "Music: 0.062",
  "Inside, small room: 0.059",
  "embedding: (2048,)"
]

这里我封装成API了,指定文件路径进行识别,会调用GPU或者CPU进行运算,得出结果,

例如动物得分0.3等等,有兴趣的可以去GITHUB上去获取试试。

 public static List Do(AudioCheckCondition condition) {
            List res = new List();
            // 创建一个进程启动信息
            ProcessStartInfo start = new ProcessStartInfo();
            start.FileName = AppsettingsConfig.PythonSet.ExePath; // Python可执行文件的路径
            start.Arguments = AppsettingsConfig.PythonSet.ScriptContent.Replace("[[audio]]", condition.FilePath); // 你的Python脚本文件路径
            start.UseShellExecute = false;
            start.RedirectStandardOutput = true;
            start.RedirectStandardError = true;
            start.CreateNoWindow = true;
            // 设置工作目录
            start.WorkingDirectory = AppsettingsConfig.PythonSet.WorkingDirectory;
            // 启动Python进程
            using (Process process = new Process())
            {
                process.StartInfo = start;
              
                process.OutputDataReceived += (sender, e) => {
                    if (!string.IsNullOrEmpty(e.Data))
                    {
                        res.Add(e.Data);
                        Console.WriteLine("Output: " + e.Data);
                    }
                };

                process.ErrorDataReceived += (sender, e) => {
                    if (!string.IsNullOrEmpty(e.Data))
                    {
                        Console.WriteLine("Python Error: " + e.Data);
                    }
                };

                process.Start();
                process.BeginOutputReadLine();
                process.BeginErrorReadLine();

                process.WaitForExit();

                // 获取Python程序的返回代码
                int exitCode = process.ExitCode;
                Console.WriteLine("Python Process Exit Code: " + exitCode);
            }
            return res;
        }

你可能感兴趣的:(音视频,python)