Qt之调用FFTW3实现音频频谱(实现)
关于原理详见博客:Qt之调用FFTW3实现音频频谱(原理)
声音来源支持麦克风和扬声器
一.音频输入
下图是采用率为8000、双声道、采样大小为16,对着麦克风吹气,并分析1024个采样点的频谱图
1.首先获取麦克风等音频输入设备
2.然后设置音频采样参数,这里将参数设置成最简单的方式:单声道、采样大小为8。因为第二部分音频输出会将采样参数设置为双声道、采样大小为16,这样的话就方便对比不同采样参数下的音频数据获取
m_audioFormat.setSampleRate(8000);
m_audioFormat.setChannelCount(1);
m_audioFormat.setSampleSize(8);
m_audioFormat.setCodec("audio/pcm");
m_audioFormat.setByteOrder(QAudioFormat::LittleEndian);
m_audioFormat.setSampleType(QAudioFormat::UnSignedInt);
3.子类化QIODevice,并将该子类作为QAudioInput的Start方法的参数
这样只需重写QIODevice中的writeData函数,就能很方便的获取到麦克风输入的音频数据
qint64 writeData(const char *data, qint64 ma
Qt之调用FFTW3实现音频频谱(实现)相关推荐
- Qt之调用FFTW3实现音频频谱(原理)
关于实现详见博客:Qt之调用FFTW3实现音频频谱(实现) 一.效果 最近在用播放器业界天花板PotPlayer听歌时,发现其频谱跳动非常有趣,如下所示: 于是决定自己实现一个,如下所示: 别看功能很 ...
- QT 借助 图表 实现音频频谱的绘制
1.前言 因为项目需要,要将音频播放并且实时展现其频谱图.项目中需要解析频谱数据,涉及到相关算法问题.所以博主没有采用网络上QT用QPainter库绘制频谱,而是采用了QChart来绘制频谱. 2.效 ...
- 一步一步教你实现iOS音频频谱动画(一)
如果你想先看看最终效果再决定看不看文章 -> bilibili 示例代码下载 第二篇:一步一步教你实现iOS音频频谱动画(二) 基于篇幅考虑,本次教程分为两篇文章,本篇文章主要讲述音频播放和频谱 ...
- php绘制频谱图,一步一步教你实现iOS音频频谱动画(二)
本文是系列文章中的第二篇,上篇讲述了音频播放和频谱数据计算,本篇讲述数据处理和动画的绘制. 前言 在上篇文章中我们已经拿到了频谱数据,也知道了数组每个元素表示的是振幅,那这些数组元素之间有什么关系呢? ...
- 音频断句Matlab,一步一步教你实现iOS音频频谱动画(二)
如果你想先看看最终效果再决定看不看文章 -> bilibili 示例代码下载 本文是系列文章中的第二篇,上篇讲述了音频播放和频谱数据计算,本篇讲述数据处理和动画的绘制. 前言 在上篇文章中我们已 ...
- 音频频谱图(自定义View——进阶篇2)
音频频谱 + 波形图绘制 我们经常有看到音乐播放器播放界面会有频谱图显示,感觉很炫,今天我就带大家来实现频谱图,顺便将波形图绘制也分享给大家,这里重点讲频谱这块.我们这里的频谱采用8分频fft,这里 ...
- 音频频谱显示-显示音频文件静态频谱图(一)
音频频谱显示-显示音频文件静态频谱图(一) https://blog.csdn.net/xiaolong1126626497/article/details/126971535 音频频谱显示-基于fm ...
- 音频频谱显示-基于fmod设计音乐播放器并动态显示频谱图(二)
音频频谱显示-显示音频文件静态频谱图(一) https://blog.csdn.net/xiaolong1126626497/article/details/126971535 音频频谱显示-基于fm ...
- Qt音视频开发7-ffmpeg音频播放
一.前言 之前用ffmpeg解码出来了音频,只是做了存储部分,比如存储成aac文件,播放的话早期用的是sdl来播放音频,自从Qt5以后提供了QAudioOutput来播放输入的音频数据,就更加方便了, ...
最新文章
- SQL Server-聚焦UNIOL ALL/UNION查询(二十三)
- sqlserver2005表转到mysql数据库
- QQ开心农场外挂软件设计思路
- Python __slots__ 作用
- 带参数的插入语句的问题
- IT也要健康:帮助你保持健康的几个重要因素
- MySQL级联删除和级联修改
- ffmpeg的使用 | m3u8视频下载、合并
- python更换证件照底色
- C51单片机实验-LCD1602显示实验
- 阿里云盘 WebDAV升级
- 数值积分——梯形公式和Simpson公式
- matlab实现5自由度雄克机器人的运动仿真
- window nginx关闭后,访问代理仍成功
- 【附源码】计算机毕业设计java在线学习系统设计与实现
- eNSP配置PC路由
- linux下的微博客户端,几款第三方微博客户端的比较
- 放生怎么会一再演变成“放死”?
- 嵌入式 ARM 平台使用dm-crypt加密磁盘分区
- 设备管理和共享通过物联网技术实现
热门文章
- 交换机怎么用计算机配置,配置交换机,详细教您怎么配置交换机
- python 对png图片压缩
- HTTP Content-type 对照表
- python ImportError: cannot import name ' ×××'解决方法
- 32位程序运行内存1G以上容易卡死或崩溃问题
- 没技术的人,看看这5个生意,虽然不起眼,很多人却在悄悄地赚钱
- MKR:协同过滤算法效果不佳,知识图谱来帮忙
- Request processing failed; nested exception is org.thymeleaf.exceptions.TemplateInputException
- Android 自定义view 实现点击 展示下拉选项效果
- 硬盘分类及挂载硬盘知识补充和介绍