mobileNet/音频分类

浏览器音频分类器 (背景噪音分离增强版)

简介

这个项目是一个基于浏览器的音频分类器,它利用 TensorFlow.js 和 Speech Commands 模型,可以识别用户自定义的声音类别。与传统音频分类器不同的是,此版本特别强调了背景噪音的分离和处理,从而提升分类准确率。

此应用允许用户:

  1. 录制背景噪音样本: 用于训练模型,区分目标声音和环境噪音。
  2. 添加自定义声音类别: 例如 "拍手"、"响指"、"警告音" 等。
  3. 录制自定义声音样本: 用于训练模型,识别特定声音。
  4. 训练模型: 使用录制的背景噪音和自定义声音数据,训练分类模型。
  5. 实时识别: 使用训练好的模型,实时识别麦克风输入的声音类别。

特性

  • 背景噪音分离: 通过录制和学习背景噪音,提高分类器在嘈杂环境中的准确性。
  • 自定义类别: 用户可以根据自己的需求添加和训练任意声音类别。
  • 实时识别: 模型训练完成后,可以立即进行实时声音识别。
  • 浏览器端运行: 所有处理都在浏览器端完成,无需服务器支持。
  • 用户友好的界面: 简单直观的界面,易于操作和使用。

技术栈

  • TensorFlow.js: 用于在浏览器端运行机器学习模型。
  • Speech Commands Model: TensorFlow.js 提供的预训练语音命令模型,用于迁移学习。

快速上手

建议使用live server插件开启本地服务器并访问voice.html文件。

直接打开index.html文件会需要重复授权麦克风权限请使用live server插件开启本地服务器可以解决

音频切片

TODO

需要查看speech-commands接口实现传入collectExample

.\speech-commands\src\browser_fft_recognizer.ts 667,9: async collectExample(word: string, options?: ExampleCollectionOptions):

现在实现的方法是调用collectExample方法,传入word参数,然后会自动录制音频文件,统一码率,生成频谱图,传入模型,并没有给出可以直接传入音频接口。

如果需要实现一次性录制,需要实现手动将音频文件转换成频谱图,传入模型。

目录下speech-commands文件夹是导入的https://cdn.jsdelivr.net/npm/@tensorflow-models/speech-commands@latest/dist/speech-commands.min.jsjs文件仓库