# 浏览器音频分类器 (背景噪音分离增强版) ## 简介 这个项目是一个基于浏览器的音频分类器,它利用 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.js`js文件仓库