swift中的音频波形可视化

Posted

技术标签:

【中文标题】swift中的音频波形可视化【英文标题】:Audio waveform visualization in swift 【发布时间】:2016-07-07 22:10:25 【问题描述】:

这是一个两部分的问题:

使用AVAudioRecorder 是否可以让波形实时响应传入的音频,类似于在 iphone 上激活 siri 时发生的情况。也许使用averagePowerForChannel

另外,有没有办法收集录音的音频样本来渲染波形?

我知道 novocaine 存在,但我希望不要使用框架。

【问题讨论】:

有可能github.com/fulldecent/FDWaveformView 【参考方案1】:

似乎无法单独使用AVAudioRecorder

另一种方法是使用AVCaptureSessionAVCaptureAudioDataOutput,它提供对原始音频缓冲区的访问,从中可以读取波形。

大部分处理将在委托中完成:

func captureOutput(AVCaptureOutput!, didOutputSampleBuffer: CMSampleBuffer!, from: AVCaptureConnection!)

您可能需要实施某种限制以仅处理每第 N 个样本,以便您的可视化器代码不会干扰音频。

AVCaptureSessionAVAudioRecorder 相比更加简陋 - 例如,它本身不提供任何录制功能,因此如果您还想录制音频,则需要使用 AVAssetWriter 来保存样本。

这个 SO question 展示了如何访问样本缓冲区。它使用AVAssetReader 加载文件,但委托与用于实时处理的委托完全相同: Reading audio samples via AVAssetReader

【讨论】:

是否可以使用AVAudioRecorder 进行录音,使用AVCaptureSessionAVCaptureAudioDataOutput 进行音频处理?

以上是关于swift中的音频波形可视化的主要内容,如果未能解决你的问题,请参考以下文章

找一个能即时显示音频波形软件

H5录音音频可视化-实时波形频谱绘制频率直方图

将音频数据转换为波形数据?

音频波形中负值的含义

Win7桌面显示音乐波动 - 音频频谱分析仪

[C#] NAudio 各种常见使用方式 播放 录制 转码 音频可视化