[ Linux Audio 篇 ] Linux Audio 子系统资料集锦

背景

最近需要准备Linux Audio 相关的PPT,于是将以往的知识点和遇到的问题进行整理和梳理,以便向大家讲解。同时,还整理了在这个过程中发现的优秀文章,以供参考。

修订记录

  • 增加针对该文章有相关疑问的沟通方式
  • 增加音频开源项目的介绍以及一些案例介绍、增加日常开发中常用的音频分析软件
  • 增加一些常用的音频资源丰富的芯片平台还有常用的Codec芯片
  • 增加一些偏音频类的论坛,比如我爱音频网、LiveVidecStack、声网
  • 增加各家芯片厂商的音频开发指南,比如常用的瑞芯微、全志、Amlogic 、NXP,通过各家的文档可以查漏补缺,优势互补
  • 增加调试音频问题所需要的硬件设备,比如逻辑分析仪、示波器
  • 增加一些音频类开源的智能硬件相关开源项目,比如Keytap项目
  • 增加嵌入式 声音开放固件 (SOF) 的介绍和描述,比如Introduction to the SOF Project¶

OSS VS ALSA

ALSA 驱动

ALSA lib

  • 音频子系统 作者工作过程中Audio调试经验,涉及面非常广
  • snd_pcm_open源码分析 尽可能详细的分析snd_pcm_open函数到底做了什么工作,以及这些工作到底是怎么实现的。
  • ALSA overview ST 官方针对STM32MP13x写的教程
    在这里插入图片描述

ALSA Plugin

Codec

音频延迟

  • Audio latency: buffer sizes (100 Days of Google Dev) 我们知道缓冲区在音频延迟中起着关键作用。但是什么决定了这些缓冲区的大小呢?在本视频中,我们探讨了音频缓冲区大小的一个贡献者,以及我们正在采取哪些措施来减少这些大小。这是一系列通知音频应用程序开发人员和合作伙伴最近和即将到来的 Android 音频延迟减少以及如何利用这些的系列内容之一。

  • 音频延迟 Android官网针对音频延迟相关的一个总结,比较完善。
    在这里插入图片描述

  • Audacity Latency Test 介绍怎么测试音频延迟以及通过Audacity进行分析
    在这里插入图片描述

  • Audio sync analysis library audio_sync 是一个 Python 库,用于比较两个音频信号并获取其中一个信号与另一个信号的延迟(或延迟)。该库最初是为了测试 Chromecast Audio 的多房间而开发的。为了使库能够确定延迟,被测音频源(例如扬声器)输出的音频信号需要具有某些特征(在如何测量延迟部分中进行了描述)。这限制了库的适用性,可以控制源播放的音频。如果情况并非如此,那么互相关可能是值得考虑的更好技术。

音频调试

音频开源项目

这些音频开源项目都提供了丰富的功能和工具,可以满足音频处理和操作的需求。它们适用于各种应用场景,包括音乐制作、音频处理、流媒体等。

PortAudio:PortAudio是一个用于实时音频输入和输出的跨平台音频I/O库。它提供了一个简单的API,可以方便地访问和控制音频设备,支持多种操作系统和音频接口。 相关实践可以参考商用开源项目 avs-device-sdk

SoX:SoX是一个开源的音频处理工具和库,它可以通过命令行或API在各种音频格式之间转换,也可以进行音频效果处理,如降噪、混响、均衡等。SoX支持多种平台和操作系统。 很多音效算法值得研究下

FFmpeg:FFmpeg是一个强大的音视频处理框架和工具集,可以实现音频和视频的转码、解码、编码、流媒体处理等功能。它支持多种音频格式和编码器,可以在各种平台和操作系统上运行。 经典项目,学习的话可以参考 FFmpeg原理 这本书,算是比较新的电子书。

GStreamer:GStreamer是一个开源的多媒体框架,可以实现音频和视频的流处理、编码、解码和混合等功能。它提供了丰富的插件和API,可以在不同的平台和操作系统上使用。相关实践可以参考商用开源项目 avs-device-sdk

PulseAudio:PulseAudio是一个开源的音频服务器,可以在多个应用程序间进行音频的共享和管理。它提供了高级的音频路由和混音功能,支持多种音频设备和操作系统。

JACK:JACK是一个用于实时音频和 MIDI 的音频服务器,主要在音频专业领域中使用。它提供了低延迟的音频传输和设备互联,支持多种音频接口和操作系统。

芯片平台

音频外设比较丰富的芯片平台 可以看一下市场上产品的拆解报告,可以总结出性价比高的芯片平台,因为产品涉及到量产,从各个角度都有有个评估。 智能音箱主控方案汇总,涵盖15大芯片品牌推出的34款解决方案 。举例说明一下,目前国产的智能音箱主流的芯片平台是 Allwinner R329 ,因为外设资源非常丰富,而且还有专用的HiFi4 DSP,而且全志社区也有比较完善的资料,这点是非常不错的。
在这里插入图片描述
接下来看下比较重要的功放芯片,功放芯片分为模拟和数字功放芯片,目前主流的就是数字功放芯片,针对开发者比较友好的,就是开发资料多的当属TI TAS5805,我也是通过这款芯片的资料了解到数字功放芯片内部的一些介绍。 不得不说 TI 写的芯片Datasheet 是真的好。 调试功放需要有评估板、调音软件、相关调试文档说明。
在这里插入图片描述
虽然调音软件是声学工程师的事情,但是针对开发人员了解一下,会让你针对功放芯片内部的机制更加了解一些。 TI中功率音频功放开发软件PurePath Console 3详解
在这里插入图片描述
国产芯片ACM8625 替代 TI TAS5805 的 pin 对 pin 芯片,据了解也是一些资深的TI工程师出来创业搞的公司。

音频常用软件

Audacity:一款免费、开源的音频编辑软件,可以录制、编辑和混音音频文件,支持多种音频格式。 用于查看分析音频数据非常方便,主要是开源的跨平台软件。

Adobe Audition:一款Windows专业的音频编辑软件,具有强大的音频处理和效果功能,也可以用于音频调试和分析。 可视化界面非常强,但只能在Windows / Mac 下使用,Linux平台上无法使用,这是遗憾。

VLC媒体播放器:一个免费的多媒体播放器,可以播放几乎所有音频格式,同时还支持调整音频设置和应用音效。

MediaInfo MediaInfo是一款用于查看和分析多媒体文件元数据的免费软件。它可以为你提供关于音频、视频和字幕文件的详细信息,帮助你了解文件的编码格式、分辨率、比特率、帧率、音频采样率等各种技术参数。

Foobar2000:一个简洁而高效的音频播放器,支持多种音频格式,提供了强大的音频处理和音效插件。

音频书籍

  • 《Linux Sound Programming》是一本关于Linux音频编程的书籍,由Jan Newmarch编写。该书提供了关于如何在Linux上进行音频开发的详细指南和实用技巧。 关注留言发下载链接
    是一本关于Linux音频编程的书籍,由Takashi Iwai和Aurelien Goulard合著。该书提供了关于如何在Linux上进行音频开发的详细指南和实用技巧

  • 本书主要介绍基于互联网场景的交互式实时语音处理流程,内容涉及智能语音助手、智能音箱、音/视频会议等,具体包括实时语音信号处理、数字音效、网络传输编/解码和语音唤醒识别四部分。
    在这里插入图片描述

  • 语音增强 作者总结相关文章,更像一本电子书
    在这里插入图片描述

  • 全志芯片平台 Tina Linux 音频开发指南 比较详细的文档,针对芯片音频开发非常有帮助
    在这里插入图片描述

  • Audio Specifications 音频规格概念详解
    在这里插入图片描述

与作者沟通

我已经整理好了部分书籍资料,欢迎您留言加群,加入我们的群组,即可下载这些资料。不仅如此,您还可以与同行进行交流,进而拓宽自己的知识视野。

猜你喜欢

转载自blog.csdn.net/z2066411585/article/details/132602951