Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >把原始音频写到文件里?

把原始音频写到文件里?
EN

Stack Overflow用户
提问于 2014-08-07 07:15:21
回答 3查看 1.9K关注 0票数 1

我正在为pocketsphinxfreeswitch模块编写一段C代码,以将声音(波形或音频)保存到文件中。我接收音频作为一个void *data和它的unsigned int len,我必须将它保存为一个RAW (或PCM)文件(没有头)。我该怎么做?

我试过这个:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FILE *_file;
int16_t *_data;
_data = (int16_t *) data;
_file=fopen("utterance","ab");
fwrite(data, sizeof(_data[0]), sizeof(_data)/sizeof(_data[0]), _file);
fclose(_file);
_file=NULL;

它不起作用(也许我做得不对?)我还找到了libvlclibsndfile,但没有找到任何为我服务的函数。这里有人有关于这个的简单示例/教程吗?

我正在研究C,VS2010,Win8.1 (x64)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-08-07 07:26:44

sizeof(_data)/sizeof(_data[0])是指针时,不应该使用_data;sizeof(_data)是指针_data所用的字节数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
size_t valueCount = sampleCount * channelCount;
FILE *_file;
int16_t *_data;
_data = (int16_t *) data;
_file=fopen("utterance","ab");
fwrite(data, sizeof(_data[0]), valueCount, _file);
fclose(_file);
_file=NULL;

你也可以用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fwrite(data, 1, len, _file);
票数 1
EN

Stack Overflow用户

发布于 2014-08-07 07:19:35

这方面的主要问题是,您使用sizeof(_data) / sizeof(_data[0])作为计算数组长度的尝试。但是,由于_dataint16_t *类型的,即只是一个指针,所以sizeof(_data)将返回指针的大小(在您的例子中,这个大小仅为8)。您需要一些其他方法来传递数组的长度。

票数 0
EN

Stack Overflow用户

发布于 2014-08-07 08:48:58

应用于指针的sizeof不能告诉您“在指针后面”有多少内存(指针不知道是指向一个孤独的事物,还是指向数组的第一个元素)。

相反,它告诉您指针的大小(以chars为单位),这些指针现在通常是4或8个。

因为您知道数据在哪里(data)以及其中有多少数据(len),所以不需要转换或计算任何数据。

使用任何一种

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fwrite(data, 1, len, _file);

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fwrite(data, len, 1, _file);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25186130

复制
相关文章
硬盘写到一半时断电,文件系统里会发生什么?
知乎问题: 断电时文件系统发生了什么?硬盘又发生了什么?下一次开机时写到一半的文件在系统层面还在吗?在底层还在吗? 更进一步的, 文件系统如何保证事务性, 会不会存在某种极端情况导致例如最后几个bit
233333
2018/03/07
1.6K0
硬盘写到一半时断电,文件系统里会发生什么?
matlab里读取txt文件里指定列怎么办_matlab读取音频文件
想读取一个txt文本中的很多数据。数据之前有几行是中文,然后才是数据,如何用MATLAB读取txt文件中标识符所对应的列啊,多谢指教了!文件大概是这样的:
全栈程序员站长
2022/10/04
1.2K0
Java实现将内容写到文件里面
一写代码就开心
2023/08/24
1120
Netflix的原始相机文件
原始相机文件不仅对一般的电影制作人很重要,其对于 Netflix 的全球分布式协作环境也很重要。这些文件包含相机传感器捕获的数据。它们代表负片的数字等价物,后期制作流程都离不开它们。使用 OCF 有一些独特的复杂性,而典型的 Netflix YCbCr 流不存在这些复杂性,它们之间的根本区别在于,专业生产相机捕获的数据通常包含原始的、未处理的传感器数据,必须先进行色彩管理,然后才能在标准计算机显示器上查看。
用户1324186
2022/03/15
1.1K0
Netflix的原始相机文件
一次简单的 JVM 调优,拿去写到简历里
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
芋道源码
2022/08/29
2310
一次简单的 JVM 调优,拿去写到简历里
上传高通量测序原始文件
在我们发表高通量测序文章之前通常要上传测序数据到GEO数据库,现总结流程如下。 注册账户、填写MetaSheet 在NCBI GEO官网注册一个账号,然后登陆。 点击Submission Guidelines . 从中查找GEOarchive spreadsheet format,并下载Metadata spreadsheet, 通常是Download metadata spreadsheet (template and examples) UPDATED!,官方推荐下载最新版,这儿就提供链接了。 下载完
生信宝典
2018/02/05
1.5K0
Resharper 如何把类里的类移动到其他文件
一般使用 快捷键是 Resharper 的快捷键,如果不是的话,打开设置选择快捷键是 Resharper
林德熙
2018/09/19
1K0
Resharper 如何把类里的类移动到其他文件
Resharper 如何把类里的类移动到其他文件
一般使用 快捷键是 Resharper 的快捷键,如果不是的话,打开设置选择快捷键是 Resharper
林德熙
2022/08/04
4980
【C语言】通讯录《信息写到文件版本》
相比之前的静态版本还是动态版本。这个信息写到文件版本,无疑是更加完善的。如果你不会文件操作的话,可以看看我前面写过的内存的一篇博客来看看⇣
謓泽
2022/12/19
1.2K0
【C语言】通讯录《信息写到文件版本》
把zsh放到docker里
每次进入docker容器内操作一些东西时,那效率简直太低!吓得老高赶紧把zsh + oh-my-zsh打包塞进去,终于可以愉快的开发了!zsh都装了,sshd也一起开了得了!
老高的技术博客
2022/12/28
9110
把zsh放到docker里
基础知识 | 使用 Python 将数据写到 CSV 文件
我们从网上爬取数据,最后一步会考虑如何存储数据。如果数据量不大,往往不会选择存储到数据库,而是选择存储到文件中,例如文本文件、CSV 文件、xls 文件等。因为文件具备携带方便、查阅直观。
猴哥yuri
2018/08/16
1.8K0
python 将列表写到二进制文件中
from struct import Struct def write_records(records, format, f): ''' Write a sequence of tuples to a binary file of structures. ''' record_struct = Struct(format) for r in records: f.write(record_struct.pack(*r))
用户5760343
2019/10/21
1.9K0
如何将PCM格式的原始音频采样数据编码为MP3格式或AAC格式的音频文件?
    音频采样格式可以分为packed和planar两类。以packed格式保存的采样数据,各声道间按照采样值交替存储;以planar格式保存的采样数据,各个采样值按照不同声道连续存储
故乡的樱花开了
2023/10/22
5330
如何将本地文件传到虚拟机linux_怎么把文件放到虚拟机里的系统里
#一、使用FileZilla上传文件 ##1.启动虚拟机,打开Linux终端,输入ifconfig命令查看IP地址
全栈程序员站长
2022/09/23
4.2K0
如何将本地文件传到虚拟机linux_怎么把文件放到虚拟机里的系统里
【干货】风控建模中把原始变量转成WOE实现
很多刚开始建模的同学,对原始变量转WOE都是一知半解,弄不清楚为什么要转WOE,也不清楚要怎么把变量转成WOE。
阿黎逸阳
2023/09/20
1.4K0
【干货】风控建模中把原始变量转成WOE实现
JDK8在spring场景下任意文件写到RCE
在对某产品进行挖掘时,发现了一个任意文件写的漏洞口,项目是以jar包的形式来运行的,在这种场景下除了能够覆盖掉服务器上的文件之外,似乎无法做其他操作。
HhhM
2022/08/10
1.6K0
JDK8在spring场景下任意文件写到RCE
python flask音频流/文件服务
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haluoluo211/article/details/78658791
bear_fish
2018/09/14
3K0
python flask音频流/文件服务
Python 播放音频文件
playsound是纯Python、跨平台、单功能模块,不依赖于播放声音。使用此模块,可以使用一行代码播放声音文件:
Python知识大全
2020/01/20
6.9K0
DeepMind发布最新原始音频波形深度生成模型WaveNet,将为TTS带来无数可能
编者按:Google的DeepMind研究实验室昨天公布了其在语音合成领域的最新成果——WaveNet,一种原始音频波形深度生成模型,能够模仿人类的声音,生成的原始音频质量优于目前Google采用的两种最优文本-语音模型Parameric TTS与Concatenative TTS。 WaveNets是一种卷积神经网络,能够模拟任意一种人类声音,生成的语音听起来比现存的最优文本-语音系统更为自然,将模拟生成的语音与人类声音之间的差异降低了50%以上。 我们也将证明,同一种网络能够合成其他音频信号,如音乐,并
AI科技评论
2018/03/07
1K0
DeepMind发布最新原始音频波形深度生成模型WaveNet,将为TTS带来无数可能
点击加载更多

相似问题

把字节数组写到文件里?

10

用Webpack怎么把变量写到我的代码里?

117

把固定宽度的字段写到朱莉娅的流里?

25

写到文件里。创建文件,但不写入文件。

23

我的算法只是把第一个字写到文件里?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文