java - 从麦克风 Java 中检测特定频率
问题描述
我正在尝试捕获来自麦克风的音频,并且我想检查声音的频率。如果我得到一个更大的频率,那么假设:1316.8 那么我将开始录制 1 分钟。
我正在努力将字节数据转换为频率。
我曾经Javax.sound
捕获来自麦克风的音频,并且我也完成了录制部分。
AudioFormat format = new AudioFormat(44100, 16, 2, true, true);
DataLine.Info targetInfo = new DataLine.Info(TargetDataLine.class, format);
DataLine.Info sourceInfo = new DataLine.Info(SourceDataLine.class, format);
try {
TargetDataLine targetLine = (TargetDataLine) AudioSystem.getLine(targetInfo);
targetLine.open(format);
targetLine.start();
SourceDataLine sourceLine = (SourceDataLine) AudioSystem.getLine(sourceInfo);
sourceLine.open(format);
sourceLine.start();
int numBytesRead;
byte[] targetData = new byte[targetLine.getBufferSize() / 5];
我希望输出类似于来自麦克风的每个声音的频率。
解决方案
推荐阅读
- router - openwrt luci uhttpd 权限被拒绝
- time - 如何计算 ESP8266 休眠的持续时间?
- blogger - Blogger/Blogspot - 如何修复 Http 到 Https 重定向 SEO 违规
- git - 如何强制更改的主历史记录基于旧历史记录特征分支?
- ios - 如何在表格的一部分中显示有限的行?
- python - 通过powershell编译python ASCII错误
- android - AOSP android.content.res.Resources$NotFoundException:资源 ID #0x0
- powershell - 循环浏览巨大的 CSV 文件
- python - Paramiko 或 sshtunnel 和 ssh-agent 无需输入密码
- javascript - 使用mapbox gl js,一些建筑物没有出现在3d中,如何解决?