gpt4 book ai didi

linux - 模拟麦克风(虚拟麦克风)

转载 作者:IT王子 更新时间:2023-10-29 00:01:12 25 4
gpt4 key购买 nike

我遇到了一个问题,我需要“模拟”麦克风输出。

数据将通过网络传输,解码为 PCM,并且基本上需要写入麦克风 - 然后其他程序可以读取/记录/任何内容。

我一直在阅读有关 alsa 的信息,但信息非常稀少。文件插件似乎很有前途——我正在考虑将命名管道作为“infile”,然后我可以将数据从我的应用程序传递到它。但是我无法让它工作(vlc/audacity 只是段错误)。

pcm.testing {
type file
slave {
pcm {
type hw
card 0
device 0
}
}
infile "/dev/urandom"
format "raw"
}

有没有更好的方法来做到这一点?对 alsa 插件(特别是文件插件)有什么建议吗?

最佳答案

您的声音将通过网络传输,什么会缓存它直到有人想要读取?还是数据会被丢弃?一般来说,像下面这样的东西(几乎没有测试过)应该作为虚拟麦克风工作,但我认为它总是会在设备打开时从头开始读取文件,你需要检查它如何处理文件结尾。也许您会尝试使用管道,但随后缓存/丢弃传入数据需要由从网络读取的应用程序处理。

pcm.virtmic {
type file
format "raw"
slave.pcm "default"
file '/dev/null'
infile '/dev/urandom'
}

参见 alsa docs更多选项。

同样,不确定此工具是否是您完成任务真正需要的工具。如果您可以像使用"file"一样使用“infile”选项启动命令,那就太好了,但不幸的是您不能...

希望对您有所帮助。

更新:slave.pcm 不能为“null”,而是一些真实的设备。似乎是用于计时或者我不知道但是使用 null 会导致记录器进程永远阻塞。这个设备可能会迫使你以给定的采样率,但要小心。使用“默认”是一个合理的默认值。 infile 需要提供具有正确/匹配格式和速率的原始声音数据。顺便说一句,您可以查看 alsa server 和 jackd 以及其他声音系统和库,为您的任务寻找替代解决方案

关于linux - 模拟麦克风(虚拟麦克风),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4580986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com