我正在尝试以最佳质量保存来自Verizon Fios手机的语音邮件消息。语音邮件消息可在线获得,但仅用于播放(基于Java的播放器),无法保存。正式地,没有支持的方式将原始数字语音消息保存为来自Fios Digital Voice服务的文件(没有付费服务,没有任何东西,没有任何原因)。
我唯一的想法是在通往声卡的过程中记录来自播放器的数字数据。我尝试使用循环设备进行Linux ALSA配置。
# cat /etc/asound.conf
# default device
pcm.!default {
type plug
slave.pcm "loop"
}
# output device
pcm.loopout {
type dmix
ipc_key 328211
slave.pcm "hw:Loopback,0,0"
}
# input device
pcm.loopin {
type dsnoop
ipc_key 686592
slave.pcm "hw:Loopback,1,0"
}
# duplex plug device
pcm.loop {
type plug
slave {
pcm {
type asym
playback.pcm "loopout"
capture.pcm "loopin"
}
}
}
这似乎可以正常工作并记录音频,例如,当在Youtube上播放某些内容时,音频输出将进入环路设备(默认音频输出),并且我可以捕获它(不确定它的工作原理,我同时测试了44.1kHz和48 Khz )
arecord -f cd -D loop | aplay -f cd -D hw:0,0
arecord -f dat -D loop | aplay -f dat -D hw:0,0
但是,当我尝试捕获Verizon Java音频播放器的输出时,显示为乱码,长度似乎不匹配。我怀疑它可能是8 kHz的单声道,我尝试了不同的方法,更改了频率和格式,但没有任何帮助。
您是否知道这里有什么问题以及如何记录消息?ALSA配置是否有问题?还是内核问题?(我正在使用3.4.88)。任何想法都将受到欢迎。