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

news/2024/4/15 9:56:59

Linux Audio 子系统资料

    • 背景
    • OSS VS ALSA
    • ALSA 驱动
    • ALSA lib
    • ALSA Plugin
    • 音频延迟
    • 音频调试
    • 音频书籍

背景

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

OSS VS ALSA

  • OSS 开发网站
  • ALSA 开发网站
  • 关于音频的神话和都市传说 对ALSA支持者的反驳

ALSA 驱动

  • Linux音频子系统 这是一个CSDN 免费的专栏,包含ALSA 声卡驱动、ASoc 、DAPM详解,介绍的比较齐全。
  • Linux ALSA 音频系统:物理链路篇、Linux ALSA 音频系统:逻辑设备篇 两篇文章把ALSA驱动讲清楚了,非常值得一看。
  • Writing an ALSA Driver Takashi Iwai 经典文章,虽然时间比较旧了,还是有写参考价值的
  • Rumination on ALSA Drivers Takashi Iwai 介绍ALSA Driver PPT,Takashi Iwai是Linux内核音频框架ALSA(Advanced Linux Sound Architecture)的首席维护者之一
  • kernel 4.19音频框架超详细分析(ALSA数据流程、控制流程、驱动层)
  • Linux内核4.14版本——alsa框架分析阅读顺序

ALSA lib

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

ALSA Plugin

  • PCM (digital audio) plugins ALSA 官方针对 ALSA plugin 的详细介绍
  • ALSA plugins ALSA Plug 一些示例
  • A close look at ALSA 一篇英文官方文档,详细介绍ALSA PLUG
  • Digital Audio Resampling Home Page 本文档描述了数字音频采样率转换和相关概念。提供了开源软件,并给出了相关项目和论文的指导。
  • 采样率转换器的比较结果
    在这里插入图片描述
    在这里插入图片描述

音频延迟

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

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

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

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

音频调试

  • 音频定位手段 介绍 ALSA 常用的一些定位手段
  • XRUN Debug ALSA 官网 XRUN Debug 教程
  • 音频软件开发中的debug方法和工具 音频软件开发同其他软件开发一样,都需要去调试。音频软件调试同其他软件调试方法有相同的地方,也有不同的地方,同时调试时还需要借助一些专门的工具,有了这些方法和工具,就能快速的定位问题和解决问题。
  • 音频调试的一些tips

音频书籍

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

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

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

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

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


http://www.ppmy.cn/news/1075824.html

相关文章

装饰器模式简介

概念: 装饰器模式(Decorator Pattern)是一种结构型设计模式,允许您在不改变现有对象结构的情况下,动态地将新功能附加到对象上。通过创建一个包装器类来扩展原始类的功能。这个包装器类具有与原始类相同的接口&#x…

【Linux系列】离线安装openjdk17的rpm包

首发博客地址 首发博客地址[1] 系列文章地址[2] 准备 RPM 包 请从官网下载:https://www.oracle.com/java/technologies/downloads/#java17[3] 如需不限速下载,请关注【程序员朱永胜】并回复 1020 获取。 安装 yum localinstall jdk-17_linux-x64_bin.rpm…

电气特征分析(ESA)技术是什么及有何应用场景

在现代工业领域,电机扮演着不可或缺的角色,驱动着生产设备的正常运行。然而,电机的故障可能会导致生产中断、计划外停机以及高昂的经济损失。为了保障生产的连续性和效率,预测性维护变得至关重要。在这个背景下,电气特…

共享办公空间的SWOT分析:

S(优势): 灵活性和多样性:共享办公空间通常提供多种套餐和服务,适合不同需求和预算的初创企业和个人。 资源共享和合作:共享办公空间提供了与其他企业家、创新者和专业人士交流和合作的机会,可…

C++常用23种设计模式总结(三)------装饰模式

往期回顾 C常用23种设计模式总结(一)------单例模式 C常用23种设计模式总结(二)------观察者模式 什么是装饰模式 装饰模式是一种结构型设计模式,它允许你在运行时为对象动态添加新的行为。该模式通过将对象放入包装器中来实现这一点,这个包装器会实现与…

代码题: 实现 ahooks 中的 useRequest 函数, 内部可以使用 axios 或者 fetch

useRequest 是一个常用的自定义 Hook,用于处理数据请求。它可以简化组件中的请求逻辑,使组件更纯净并重用请求逻辑。 以下是一个简单的 useRequest 的实现,使用 fetch: import { useState, useEffect } from react;function useRequest(url…

C/C++ 获取当前系统毫秒时间

如果在C/C获取当前系统毫秒时间 &#xff0c;要借助timeval #include <stdio.h> #include <sys/time.h> long getCurrentTime() {struct timeval tv;gettimeofday(&tv,NULL);return tv.tv_sec * 1000 tv.tv_usec / 1000; }int main() {printf("c/c prog…

浅谈Lua协程和函数的尾调用

前言 虽然不经常用到协程&#xff0c;但是也不能谈虎色变。同时&#xff0c;在有些场景&#xff0c;协程会起到一种不可比拟的作用。所以&#xff0c;了解它&#xff0c;对于一些功能&#xff0c;也会有独特的思路和想法。 协程 概念 关于进程和线程的概念就不多说。 那么…

北大C++课后记录:自增、自减运算符重载的小Demo

前言 自增、自减运算符有前置&#xff08;x&#xff09;和后置&#xff08;x&#xff09;之分&#xff0c;为了对其进行区分&#xff0c;C规定&#xff1a; 前置运算符作为一元运算符进行重载&#xff1a;&#xff08;注意T1对象和T2对象是有差异的&#xff09; 后置运算符作…

Qt应用开发(基础篇)——进度对话框 QProgressDialog

一、前言 QProgressDialog类继承于QDialog&#xff0c;是Qt设计用来反馈进度的对话框。 对话框QDialog QProgressDialog提供了一个进度条&#xff0c;表示当前程序的某操作的执行进度&#xff0c;让用户知道操作依旧在激活状态&#xff0c;配合按钮&#xff0c;用户就可以随时终…

软件测试:如何使用ChatGPT生成自动化测试脚本

前言 自动化测试在软件开发中起着至关重要的作用&#xff0c;它可以帮助开发团队在快速迭代的环境中保证代码的质量和稳定性。然而&#xff0c;编写测试脚本可能是一个繁琐且耗时的任务。在这方面&#xff0c;借助人工智能技术如ChatGPT&#xff0c;可以显著简化测试脚本的生成…

员工离职信

离职信 我在公司工作的了1年多的时间&#xff0c;我得到了许多宝贵的经验。但是由于公司的薪酬一直都是试用期的 2600元左右&#xff0c;难于维持目前生活和日常的开销&#xff0c;实在是寒了我的心。现在我正式提出辞去广西申能达技术部Java 开发岗一职&#xff0c;请在未来的…

【知识分享】C语言应用-易错篇

一、C语言简介 C语言结构简洁&#xff0c;具有高效性和可移植性&#xff0c;因此被广泛应用。但究其历史的标准定义&#xff0c;C语言为了兼容性在使用便利性作出很大牺牲。在《C陷阱与缺陷》一书中&#xff0c;整理出大部分应用过程中容易出错的点&#xff0c;本文为《C陷阱与…

产品展示视频制作的要点

制作产品展示视频时通过精心策划的视频剧本和拍摄手法&#xff0c;可以准确地呈现活动的目的、主题和特点&#xff0c;让观众更好地理解和认同活动的意义。深圳产品活动视频制作公司老友记小编还为您整理了以下一些重要的制作要点&#xff1a; 1.明确目标受众&#xff1a;了解你…

如何在vue项目中封装自己写的插件库并使用

如何在vue项目中封装自己写的插件库并使用 直接上样本 库文件/utils/commonTJ.js /** Description:公用方法合集* Vue.use(commonTJ, { axios: axios });* Version: 1.0* Autor: Tj* Date: 2022-08-31 11:17:00*/ import { Base64 } from "js-base64"; export defau…

SSM高校校车管理系统 毕业设计-附源码80483

目 录 摘要 1 绪论 1.1研究意义 1.2研究背景 1.3系统开发技术的特色 1.4 ssm框架介绍 1.5论文结构与章节安排 2 高校校车管理系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1数据流程 2.3.2业务流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析…

Navicat16连接Oracle报错:Oracle library is not loaded

1、有时候我们在用navicat的时候连接oracle的时候&#xff0c;它会提示我们Oracle library is not loaded&#xff0c;这时候我们要首先验证本机上是否已安装oracle的客户端&#xff0c;如果已安装客户段&#xff0c;navicat中的oci.dll选择我们安装的客户段的oci.dll文件 2、…

文献速读|5分的生信+免疫组化:单细胞测序转录组联合bulk转录组肿瘤预后模型

今天给大家分享一篇IF5.8的纯生信单细胞联合Bulk转录组构建预后模型的文章&#xff0c;于2023年3月19日发表在Cancer Immunology Immunotherapy上&#xff1a;Integrative analyses of bulk and single-cell RNA-seq identified cancer-associated fibroblasts-related signatu…

贯穿嵌入式开发的编程语言?

有个朋友和我说嵌入式行业中有没有什么神技巧&#xff0c;所谓的一招鲜吃遍天一般&#xff0c;那还真的有&#xff0c;在嵌入式开发中&#xff0c;C语言是最广泛使用的编程语言之一&#xff0c;覆盖范围几乎涵盖了整个领域。视频后方有免费的嵌入式学习资料&#xff0c;入门和进…

最大三明治公司赛百味江山易主,如何用市场调研把握经营命脉?

当地时间2023年8月24日&#xff0c;赛百味在官网上公告了与私募股权机构达成交易&#xff0c;成功卖出。一些外媒报道&#xff0c;此次交易金额大约在95.5亿美元(约合人民币近700亿元)。尽管现在的收购价为100亿美元&#xff0c;但赛百味曾经的估值高达500亿美元。那曾经吊打麦…
最新文章