关于原理详见博客: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实现音频频谱(实现)相关推荐

  1. Qt之调用FFTW3实现音频频谱(原理)

    关于实现详见博客:Qt之调用FFTW3实现音频频谱(实现) 一.效果 最近在用播放器业界天花板PotPlayer听歌时,发现其频谱跳动非常有趣,如下所示: 于是决定自己实现一个,如下所示: 别看功能很 ...

  2. QT 借助 图表 实现音频频谱的绘制

    1.前言 因为项目需要,要将音频播放并且实时展现其频谱图.项目中需要解析频谱数据,涉及到相关算法问题.所以博主没有采用网络上QT用QPainter库绘制频谱,而是采用了QChart来绘制频谱. 2.效 ...

  3. 一步一步教你实现iOS音频频谱动画(一)

    如果你想先看看最终效果再决定看不看文章 -> bilibili 示例代码下载 第二篇:一步一步教你实现iOS音频频谱动画(二) 基于篇幅考虑,本次教程分为两篇文章,本篇文章主要讲述音频播放和频谱 ...

  4. php绘制频谱图,一步一步教你实现iOS音频频谱动画(二)

    本文是系列文章中的第二篇,上篇讲述了音频播放和频谱数据计算,本篇讲述数据处理和动画的绘制. 前言 在上篇文章中我们已经拿到了频谱数据,也知道了数组每个元素表示的是振幅,那这些数组元素之间有什么关系呢? ...

  5. 音频断句Matlab,一步一步教你实现iOS音频频谱动画(二)

    如果你想先看看最终效果再决定看不看文章 -> bilibili 示例代码下载 本文是系列文章中的第二篇,上篇讲述了音频播放和频谱数据计算,本篇讲述数据处理和动画的绘制. 前言 在上篇文章中我们已 ...

  6. 音频频谱图(自定义View——进阶篇2)

    音频频谱 +  波形图绘制 我们经常有看到音乐播放器播放界面会有频谱图显示,感觉很炫,今天我就带大家来实现频谱图,顺便将波形图绘制也分享给大家,这里重点讲频谱这块.我们这里的频谱采用8分频fft,这里 ...

  7. 音频频谱显示-显示音频文件静态频谱图(一)

    音频频谱显示-显示音频文件静态频谱图(一) https://blog.csdn.net/xiaolong1126626497/article/details/126971535 音频频谱显示-基于fm ...

  8. 音频频谱显示-基于fmod设计音乐播放器并动态显示频谱图(二)

    音频频谱显示-显示音频文件静态频谱图(一) https://blog.csdn.net/xiaolong1126626497/article/details/126971535 音频频谱显示-基于fm ...

  9. Qt音视频开发7-ffmpeg音频播放

    一.前言 之前用ffmpeg解码出来了音频,只是做了存储部分,比如存储成aac文件,播放的话早期用的是sdl来播放音频,自从Qt5以后提供了QAudioOutput来播放输入的音频数据,就更加方便了, ...

最新文章

  1. SQL Server-聚焦UNIOL ALL/UNION查询(二十三)
  2. sqlserver2005表转到mysql数据库
  3. QQ开心农场外挂软件设计思路
  4. Python __slots__ 作用
  5. 带参数的插入语句的问题
  6. IT也要健康:帮助你保持健康的几个重要因素
  7. MySQL级联删除和级联修改
  8. ffmpeg的使用 | m3u8视频下载、合并
  9. python更换证件照底色
  10. C51单片机实验-LCD1602显示实验
  11. 阿里云盘 WebDAV升级
  12. 数值积分——梯形公式和Simpson公式
  13. matlab实现5自由度雄克机器人的运动仿真
  14. window nginx关闭后,访问代理仍成功
  15. 【附源码】计算机毕业设计java在线学习系统设计与实现
  16. eNSP配置PC路由
  17. linux下的微博客户端,几款第三方微博客户端的比较
  18. 放生怎么会一再演变成“放死”?
  19. 嵌入式 ARM 平台使用dm-crypt加密磁盘分区
  20. 设备管理和共享通过物联网技术实现

热门文章

  1. 交换机怎么用计算机配置,配置交换机,详细教您怎么配置交换机
  2. python 对png图片压缩
  3. HTTP Content-type 对照表
  4. python ImportError: cannot import name ' ×××'解决方法
  5. 32位程序运行内存1G以上容易卡死或崩溃问题
  6. 没技术的人,看看这5个生意,虽然不起眼,很多人却在悄悄地赚钱
  7. MKR:协同过滤算法效果不佳,知识图谱来帮忙
  8. Request processing failed; nested exception is org.thymeleaf.exceptions.TemplateInputException
  9. Android 自定义view 实现点击 展示下拉选项效果
  10. 硬盘分类及挂载硬盘知识补充和介绍