关于Python脚本测量RPI3至远程主机音频流延迟的问询
脚本功能解析与音频流延迟测量适用性说明
首先得提一句:你贴的脚本有个小语法错误——import time import sys应该分成两行写,修正后的正确代码是:
import time import sys while True: time.sleep(0.001) print('%s\r' % (int(time.time() * 1000) % 10000), end='') sys.stdout.flush()
这个脚本到底在干啥?
简单来说,它就是在终端里实时刷新显示当前时间戳的后四位毫秒数,具体逻辑拆解:
- 先把当前时间转换成毫秒级的数字(
time.time()*1000),取最后四位(%10000),这样数字会在0-9999之间循环。 - 每1毫秒刷新一次(
time.sleep(0.001)),保证数字能跟上毫秒级的变化。 - 用
\r回车符让每次输出都覆盖当前行的内容,不会刷屏;sys.stdout.flush()则是强制把内容立刻输出到终端,避免系统缓存导致显示延迟。
它能用来测RPI3到远程主机的音频流延迟吗?
很遗憾,这个脚本本身没法直接完成音频流延迟的测量,原因很直白:
它完全没涉及任何音频相关的操作——既不会把时间戳嵌入到音频流里,也没法从远程主机接收的音频中提取时间戳做对比。
音频流延迟的测量需要一套完整的闭环:比如在RPI3(发送端)生成包含时间戳的音频信号(比如把数字转成语音播报,或者嵌入高频标识),然后远程主机(接收端)接收并解析这个音频,拿到发送时的时间戳,再和接收端的当前时间做差值计算,这个差值才是延迟。
不过,要是你想做个非常粗糙的手动测试,这个脚本倒是能当个辅助:比如在RPI3上对着麦克风念出脚本显示的数字,同时远程主机录制这个声音,之后对比远程主机听到数字的时间和RPI3上脚本输出该数字的时间,手动算差值。但这种方式精度极低,还容易受环境、人为反应速度影响,只能做个大概参考。
内容的提问来源于stack exchange,提问作者inaam
相关产品推荐
相关产品推荐

