gpt4 book ai didi

c - 如何用 libsndfile 库中的函数替换 fscanf?

转载 作者:行者123 更新时间:2023-11-30 14:28:41 27 4
gpt4 key购买 nike

我使用 libsndfile 库打开了 wav 文件,想要读取该文件并获取 FFT 中的 N 个点,并获取时域样本并计算 FFT。

有什么想法可以用 libsndfile 库中的函数替换 fscanf 吗?这是代码行:

for(i=0; i < N; i++) fscanf(fs, "%lg%lg", &x[i][0], &x[i][1]);

所以,问题是我不知道如何使用 wav。没有 libsndfile 以及如何使用 libsndfile 实现一些东西。

谢谢,a.

最佳答案

你说你想阅读 N 个样本,然后你就这么做了:

for(i=0; i < N; i++) fscanf(fs, "%lg%lg", &x[i][0], &x[i][1]);

所以你正在阅读 2 * N 个样本,但我不确定为什么。

如果您获取 libsndfile 源代码 tarball,则示例/目录中有示例程序。基本上你会这样做:

SNDFILE * sf ;
SF_INFO info ;
double array [N] ;

memset (&info, 0, sizeof (info));
if ((sf = sf_open (filename, SFM_READ, &info)) == NULL)
handle_error () ;

sf_read_double (sf, array, N) ;
sf_close (sf) ;

此代码假设您的文件是单声道(只有一个 channel )。

关于c - 如何用 libsndfile 库中的函数替换 fscanf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5649960/

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