Coder Social home page Coder Social logo

knockat's Introduction

无聊的时候敲敲桌子玩

knock at... 其实什么都能敲
这是一个识别敲击位置的程序,可以视为一个简单的事件检测程序。
在桌子上有几个点,用小锤子去敲,我想让计算机知道我敲的位置,来点互动~
然后这个程序诞生了。

实现方案

  1. 单声道录音
  2. 端点检测:短时自相关
  3. 特征提取:MFCC
  4. 分类器:SVM
  5. 输出图形界面:matplotlib(demo程序方案,后续更换)

目录结构

knockat/
|-- main.py 主程序-运行此程序启动
|-- main/
|-- |-- audioio.py 音频文件读写
|-- |-- dataprocess.py 音频数据处理
|-- |-- dsp.py 数字信号处理
|-- |-- globalvar.py 全局变量
|-- |-- operation.py 识别后的操作
|-- |-- record.py 麦克风操作,录音
|-- modules/ 模型文件-训练自动产生
|-- |-- *.m
|-- references/ 参考资料
|-- |-- ...
|-- samples/ 程序主体模块存放
|-- |-- samples*/ 采样-数字*对应采样点
|-- test/ 功能开发测试
|-- train/ 数据训练
|-- |-- sampletrain.py
|-- README.md 说明文档
某些文件可能没有,有的需要首次运行时生成,有的后续会逐步添加。不影响正常使用。

启动方式:

在knockat目录下运行终端:

python3 main.py [--mode]

首次使用需要使用--mode参数采集音频、训练,后续使用直接运行main.py即可。

示例:

采集数据(首次运行需要)

在桌子上画5个点,建议间距不小于15cm 找一个小锤子

python3 main.py --mode sample1

敲100下,如果识别到敲击声,命令窗口会有提示 按Ctrl+C终止程序

python3 main.py --mode sample2

敲100下,如果识别到敲击声,命令窗口会有提示 按Ctrl+C终止程序

python3 main.py --mode sample3

敲100下,如果识别到敲击声,命令窗口会有提示 按Ctrl+C终止程序

python3 main.py --mode sample4

敲100下,如果识别到敲击声,命令窗口会有提示 按Ctrl+C终止程序

python3 main.py --mode sample5

敲100下,如果识别到敲击声,命令窗口会有提示 按Ctrl+C终止程序

训练采样数据(首次运行需要)

python3 main.py --mode train

开始玩耍

python3 main.py

后续计划改进内容:

  1. 可变点数
  2. 抗噪

(to be continued...)

knockat's People

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.