我有一个编码器,它对我提供的语音文件(.wav)进行编码。现在我想做的是编写一个程序,这样我就可以在麦克风中说话,同时编码器可以处理它。基本上我想要实时记录和处理语音信号(可以容忍一个小的延迟)。为了做到这一点,我正在考虑制作一个循环,我将首先在一个文件中记录语音说1秒,然后我将文件复制到temp并将此温度传递给编码器。在此期间,录音机应该覆盖speech.in文件并将下一个1秒的数据保存在其中。并继续此循环......
我遇到的问题是我不能写一个程序来控制录音机做我想要的事情。是否有任何可以轻松控制的录像机或任何代码?
这是我能想到实现这一目标的唯一方法。任何其他(希望更好)的解决方案也是受欢迎的。
*编辑:我正在使用Ubuntu 10.04但是我在Windows上使用了相同的程序,所以欢迎任何平台上的任何建议
答案 0 :(得分:1)
你建议的方式不是要走的路。至少,这不是在Windows和Mac上完成的。 (我不知道linux风格的机器会怎么做,但我猜测方法是一样的)
你必须打开音频设备,并分配一组(比方说4个)内部存储器缓冲区(长度为100毫秒的声音就足够了,但是你必须尝试一下你能获得多少小的缓冲区(较小的,延迟越小,但音频故障的可能性就越大))。 您将这些附加到音频设备,并在填充任何这些缓冲区时请求回调。当您第一次回调时,请确保在audiodevice再次使用第一个缓冲区之前对缓冲区进行足够快速的编码,并用新数据覆盖。
您可以再次将编码后的声音输出到audiodevice。延迟类似于1个缓冲区的长度。
答案 1 :(得分:0)
这听起来最好通过线程来实现。
以下是MSDN link