gpt4 book ai didi

c - 在 Linux 上将麦克风录制到 wav 或 mp3 文件?

转载 作者:太空狗 更新时间:2023-10-29 11:30:29 25 4
gpt4 key购买 nike

我不知道从哪里开始,我想在 linux 上记录麦克风输入,这可能吗,我的意思是我知道在 linux 下一切都是文件描述符,它会像使用 fopen/fread 读取文件一样容易吗?另外,它需要root才能完成吗?

谢谢。

最佳答案

这当然是可能的,但它不像从文件中读取那么简单。最简单的方法是使用库,例如​​ PortAudio . PortAudio 是跨平台的,使用起来相当简单。

PortAudio 可以让您从麦克风录音,但它对文件格式一无所知。为此,您将需要另一个图书馆。我从来没有用过它,但是the libsndfile library可能会满足您的需求。

在任何情况下,您都必须从麦克风录音并将数据存储在缓冲区中,然后将该缓冲区写入文件(通过 libsndfile 或类似文件)。

编辑:示例 PortAudio 的东西(未经测试,但你应该明白了)。

int main()
{
PaStream *stream;
/* allocate a buffer that can hold 30 seconds of audio at 44,100Hz */
int len = 44100*30;
float *buffer = malloc(len*sizeof(float));

Pa_Initialize();

/* open a default input (microphone) stream with a sampling rate of 44,100Hz */
Pa_OpenDefaultStream(&stream, 1, 0, paFloat32, 44100, paFramesPerBufferUnspecified, NULL, NULL);
Pa_StartStream(stream);
Pa_ReadStream(stream, buffer, len);

/* write buffer to a file here */
return 0;
}

关于c - 在 Linux 上将麦克风录制到 wav 或 mp3 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5148365/

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