尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Audacity 如何测量音频设备往返延迟以校准延迟补偿?
Audacity 如何测量音频设备往返延迟以校准延迟补偿【免费下载链接】audacityAudio Editor项目地址: https://gitcode.com/GitHub_Trending/au/audacity当项目播放与录音监控同时进行输出端的音频会经过一条从输出设备回到输入设备的通路再次进入 Audacity。为了让监控录音与项目音频保持同步Audacity 的延迟补偿机制会丢弃项目音频到达之前的所有输入音频而这个丢多久的关键参数就是音频设备的往返延迟round-trip latency。PortAudio 会报告这些延迟值但 Audacity 仓库的实测文档结论是PortAudio reports these latencies, but experiments showed that they werent reliable.因此仓库中记录了一套可控实验能给出对往返延迟的准确估计测得之后就可以手动校准延迟补偿设置Audacity already has a latency-compensation setting for the user to adjust manually。本文按 docs/portaudio-reported-playback-capture-latency.md 中的方法说明从测量到校准的完整路径。需要说明的是该方法要求修改 Audacity 的音频 IO 回调加入测试逻辑面向能读取并修改源码的开发者不是用户界面里现成的按钮。实验原理文档对延迟补偿的定义是假设有一根音频线把输出接回输入按下播放后项目音频最终会回到输入端被录下来延迟补偿就是丢弃所有输入音频直到项目音频到达为止。一旦知道了设备的往返延迟最优地自动调整这个设置就是直接推论。所以整个实验的任务只有一个精确测出所选输出设备到所选输入设备的往返延迟。准备条件用一根音频线把选定的输出设备连接到选定的输入设备。一个能修改音频 IO 回调在音频驱动线程上执行的 Audacity 构建环境。录音开始前创建一个 wav 文件用于存放输入缓冲区的采样数据。测量步骤按文档描述在音频 IO 回调中做以下事情用一秒静音、然后一个正弦波覆写输出缓冲区overwrite the output buffer with one second of silence, then with a sine wave把输入缓冲区的采样写入 wav 文件录音停止时关闭 wav 文件。之后在 Audacity 中打开这个 wav 文件观察延迟——正弦波在录音中出现的位置相对播放开始时刻就是这条设备链路的往返延迟。注意请求缓冲区大小的含义文档脚注明确该值同时作用于输入和输出即 250 表示输入 250 ms 加输出 250 ms总共 500 ms。请求多大的缓冲区会影响实测结果测量时应记录所用的请求值。文档给出的测量结果示例下表是文档中作者实测得到的数据原文照录用于说明 PortAudio 报告值与真实往返延迟之间的偏差可以大到数百毫秒OSHostrequested buffer size (ms) (*)PA-reported output buffer size (ms) (**)PA-reported input buffer size (ms)Measured round-trip (ms)error (reported - actual) (ms)WinWASAPI25027026075455WinWASAPI10012011075155WinWASAPI20403075-5WinDirectSound25025062.5420-107.5WinDirectSound1001002511510WinDirectSound20didnt workdidnt workdidnt workdidnt workWinASIO50050.547.9100-1.6WinASIO10050.547.9100-1.6WinASIO2026.524.754-2.8(*) applies to both input and output, e.g. 250 means 250 for the input 250 for the output, in total 500. (**) for one same requested size, may differ wildly depending on whether only playback is active or playback and recording. Here we write the values obtained when both are active.这是文档示例结果不是任何环境下必须复现的固定数值WASAPI 下误差最大达到 455 ms而 ASIO 下误差只有约 1.6 ms 到 2.8 ms可见报告的延迟值在不同后端之间完全不可靠。你的环境需要用同一方法重新测量。表中 DirectSound 请求 20 ms 时四项均为 didnt work说明并非所有后端都支持小缓冲区请求。用测量结果校准延迟补偿测得往返延迟后校准位置在 Audacity 偏好设置中。对应界面由 src/preferences/qml/Audacity/Preferences/internal/BufferAndLatencySection.qml 定义Buffer and latency 面板包含三个相关控件Buffer lengthms缓冲区长度增减控件Latency compensationms手动延迟补偿值即本任务要写入测量结果的设置项Automatic复选框勾选后 Latency compensation 控件被禁用QML 中为enabled: !apiModel.automaticCompensationEnabled手动值不再生效。因此校准操作是取消勾选 Automatic在 Latency compensation 控件中填入刚才测得的往返延迟值。源码中该设置的默认值是 25 ms见 au3/src/prefs/DevicePrefs.cpp 第 307 行AudioIOLatencyCompensation, 25验证方式以文档给出的观察方法为准在 Audacity 中打开测量用 wav 文件观察录音里正弦波相对播放起点的位置即往返延迟。限制与边界文档的全部测量数据来自 Windows 平台的 WASAPI、DirectSound、ASIO 三种后端文档没有给出 macOS 或 Linux 数据也没有给出测量精度的保证条件。测量依赖 IO 回调层面的输出覆写与输入落盘测量时记录下来的项目内容会被替换为一秒静音 正弦波不要在生产录音流程中启用这段逻辑。PA-reported 值在仅播放与播放加录音同时激活两种状态下可能差异很大脚注 **对比时以两种都激活的取值为准与文档记录口径一致。文档没有进一步说明基于实测往返延迟的自动校准如何落地它只是给出了一旦知道了往返延迟最优自动调整就是直接推论这一前提。当前版本中校准路径就是上面描述的手动设置。【免费下载链接】audacityAudio Editor项目地址: https://gitcode.com/GitHub_Trending/au/audacity创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

MyBatis拦截器机制详解与实战应用

MyBatis拦截器机制详解与实战应用

1. MyBatis拦截器机制概述MyBatis拦截器(Interceptor)是其框架中极具特色的扩展机制,它基于动态代理模式实现,允许开发者在SQL执行生命周期的关键节点插入自定义逻辑。这种设计类似于电路系统中的保险丝——在电流通过的关键路径上…

📅 2026/9/15 11:19:49
portless 开发协作规范与 Windows 远程调试工作流:从 AGENTS.md 看仓库治理实践

portless 开发协作规范与 Windows 远程调试工作流:从 AGENTS.md 看仓库治理实践

portless 开发协作规范与 Windows 远程调试工作流:从 AGENTS.md 看仓库治理实践 【免费下载链接】portless Replace port numbers with stable, named local URLs. For humans and agents. 项目地址: https://gitcode.com/GitHub_Trending/por/portless port…

📅 2026/9/15 11:19:49
Surya 2 在 NVIDIA GPU 上如何通过 vllm 后端首次运行 surya_ocr?

Surya 2 在 NVIDIA GPU 上如何通过 vllm 后端首次运行 surya_ocr?

Surya 2 在 NVIDIA GPU 上如何通过 vllm 后端首次运行 surya_ocr? 【免费下载链接】surya OCR, layout analysis, reading order, table recognition in 90 languages 项目地址: https://gitcode.com/GitHub_Trending/su/surya 本文面向有一块 NVIDIA GPU、想…

📅 2026/9/15 11:19:49
MORE NEWS

更多资讯

📰

es-toolkit/compat 的 findLastIndex 详解:从数组尾部反向查找匹配元素的 Lodash 兼容实现

es-toolkit/compat 的 findLastIndex 详解:从数组尾部反向查找匹配元素的 Lodash 兼容实现 【免费下载链接】es-toolkit A modern JavaScript utility library thats 2-3 times faster and up to 97% smaller, a major upgrade to lodash. 项目地址: https://gitc…

📰

GLM-5开源大模型技术解析与工程实践

1. GLM-5开源模型的技术突破与工程价值作为2023年最受瞩目的开源大模型之一,GLM-5的完整开源标志着Agentic Engineering时代的真正到来。这个由智谱AI团队研发的模型不仅在benchmark测试中表现出色,更重要的是它首次实现了从预训练模型到完整工程解决方案…

📰

Mermaid 时序图进阶教程:3 个场景画会条件分支与并行流程

Mermaid 时序图进阶教程:3 个场景画会条件分支与并行流程 【免费下载链接】mermaid Generation of diagrams like flowcharts or sequence diagrams from text in a similar manner as markdown 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid 你…

📰

三、C++基础

重点梗概:命名空间 namspace 为了防止名字冲突using namespace std;cout和cin都属于std,也可以写成 std::cin std::coutC&C C新增bool类型,新的C标准也有bool类型,C变量可实现随用随定义cin和cout的用法C面向对象 类是抽象出来…

📰

AI 智能投研工具工程化选型:三类产品形态的架构与能力边界

风险提示:本文仅对财搭子、AI涨乐、同花顺做客观功能对比,所有 AI 分析、信号、复盘内容仅作投资信息参考,不构成任何投资建议,市场有风险,投资需谨慎。把 AI 炒股软件当作一个系统来选型,先看它的分层结构…

📰

Audacity 如何测量音频设备往返延迟以校准延迟补偿?

Audacity 如何测量音频设备往返延迟以校准延迟补偿? 【免费下载链接】audacity Audio Editor 项目地址: https://gitcode.com/GitHub_Trending/au/audacity 当项目播放与录音监控同时进行,输出端的音频会经过一条从输出设备回到输入设备的通路再…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬