wav转txt格式的代码实现(c,python)
平时经常做音频算法,经常用得到wav转txt的转换,这里就做个备忘,自己写了一些小代码来实现这个目标:
第一个是c代码的实现:
#include <stdio.h>
#include <stdlib.h>
#include <math.h> #define W 128 int FileSet = ;
int FileEnd = ;
int FileLength = ;
short InputData[W];
void buf_txt(short *buf,int len,FILE*ttt)
{
for(int i=; i < len; i++)
{
fprintf(ttt, ",%d",buf[i]);
if(i % == )
{
fprintf(ttt, "\n");
}
}
} int main(int argc, char** argv)
{ FILE *Ifp,*ttt; if(argc != )
{
printf("usage:./wav2txt XX.wav EEE.txt\n\t");
return ;
} Ifp = fopen(argv[],"rb"); ttt = fopen(argv[],"w"); fseek(Ifp,0L,SEEK_END);
FileEnd=ftell(Ifp);
rewind(Ifp);
FileLength = FileEnd/; while(FileLength >= W)
{
fread(InputData,sizeof(short),W,Ifp);
buf_txt(InputData,W,ttt);
FileLength -= W; } fread(InputData,sizeof(short),FileLength,Ifp); buf_txt(InputData,FileLength,ttt); return ;
}
~
第二个是python的代码:
# -*- coding: utf-8 -*-
import wave
import matplotlib.pyplot as plt
import numpy as np
import sys f = wave.open(sys.argv[1], 'rb' )
params = f.getparams()
nchannels, sampwidth, framerate, nframes = params[:4] np.set_printoptions(threshold='nan') Data_str = f.readframes(nframes)
Data_num = np.fromstring(Data_str,dtype=np.int16)
print(Data_num)
print(nframes) #np.savetxt("test.txt",Data_num) fw =file(sys.argv[2],"w")
fw.write(str(list(Data_num)))
fw.close() f.close()
python和c代码放在一起的时候,才会发现,它是多么的简洁,看来以后要经常使用了。把python作为一个重点使用的语言来重视起来。
备忘问题:
1 一个数组无穷大,numpy在输出时会自动省略中间部分而只打印部分。
解决方法:使用numpy.set_printoptions(threshold='nan')
2 Python中list里面的元素没有以逗号为分割,而是以空格为分割:
解决方法:基础知识不够牢固,list中元素是以逗号做分割的,matrix中是以空格为分割的,强转即可。
参考文档:
1 https://www.cnblogs.com/dupuleng/articles/5028291.html
2 https://blog.csdn.net/bowean/article/details/80868965
wav转txt格式的代码实现(c,python)的更多相关文章
- mfc 导出数据保存成excel和txt格式
最近做了一些东西,项目到了收尾的工作.不过这次我没有参与到控件机器的功能的那一部分,都是主管自己写的.不过,所有的控件重写都是由我来做的.还有数据库这一方面是我和主管共同完成的.不过还不错,主管写一部 ...
- 【转】java将excel文件转换成txt格式文件
在实际应用中,我们难免会遇到解析excel文件入库事情,有时候为了方便,需要将excel文件转成txt格式文件.下面代码里面提供对xls.xlsx两种格式的excel文件解析,并写入到一个新的txt文 ...
- python读取与写入csv,txt格式文件
python读取与写入csv,txt格式文件 在数据分析中经常需要从csv格式的文件中存取数据以及将数据写书到csv文件中.将csv文件中的数据直接读取为dict类型和DataFrame是非常方便也很 ...
- 把txt格式数据制作成xml数据
txt格式数据: 代码: s1=""" <object> <name>{0}</name> <pose>Unspecifi ...
- 利用kindlegen实现txt格式小说转换为mobi格式小说(C++实现)
一直以来喜欢在kindle上看小说,kindle不伤眼,也可以帮助控制玩手机的时间.但在kindle上看txt格式的网络小说就很头疼了,这类小说在kindle上是没有目录的,而且篇幅巨长.所以一直以来 ...
- Txt格式配置表无法解析的问题——BOM
今天再次遇到同一个问题:策划给来一个Txt格式配置表,我用解析类去读取,返回的结果为空.解析类参数是:主键key,文件名fileName,错误提示errorTip. 写读取语句的时候,主键key我是直 ...
- 将搜狗词库.scel格式转化为.txt格式
由于项目中要用到词库,而下载的搜狗词库是.scel格式,所以就用python脚本将搜狗词库.scel格式文件转化为.txt格式文件. #!/bin/python # -*- coding: utf-8 ...
- 琐碎--选择文件夹(路径)+生产txt格式的log+数据库操作方式
记录日常工作常用到的一些方法: 1 选择文件操作,并将文件的路径记录下来: OpenFileDialog ofd = new OpenFileDialog(); ofd.Multiselect = f ...
- 使用gfortran将数据写成Grads格式的代码示例
使用gfortran将数据写成Grads格式的代码示例: !-----'Fortran4Grads.f90' program Fortran4Grads implicit none integer,p ...
随机推荐
- 利用mybatis generator实现数据库之间的表同步
项目背景: 项目需要对两个服务器上的表进行同步,表的结构可能不一样.比如服务器A上的表i同步数据到服务器B上的表j,i和j的结构可能不一样,当然大部分字段是一样的.项目看起来很简单,网上一搜也是很多, ...
- H5获取原生传过来的值
项目开发中,可能会涉及到原生页面跳转到H5页面,然后H5页面要返回原生页面,通常使用的方法就会失效:this.$router.go(-1);怎么解决呢,这样就需要原生跳转H5页面的时候,在URL里传递 ...
- rest接口webservice接口利用http请求方式发送数据
所需依赖 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>h ...
- SVN与资源库同步后动作的字母意义
U:表示从服务器收到文件更新了G:表示本地文件以及服务器文件都以更新,而且成功的合并了A:表示有文件或者目录添加到工作目录R:表示文件或者目录被替换了C:表示文件的本地修改和服务器修改发生冲突
- Python3 在操作excel时报PermissionError: [Errno 13] Permission denied: 'D:/workstation/yhdx_auto/config/case.xls'错误
此问题为文件被拒绝访问,主要是该文件已经被打开了.关闭此excel文件后在执行excel的相关操作就ok了.
- 关于python,完善我计算机知识的一步。
因为身为理科男,所以特别喜欢涉及其他领域的知识.而对我来说,计算机是很有诱惑力的--尤其是程序语言设计,懂得一门“外语”是多么的重要.大一时候接触过包括有计算机的基本知识,c语言,这个新的学期也开始接 ...
- scrum与第一次teamwork
一.关于Scrum Scrum是什么?是迭代式增量软件开发过程,通常用于敏捷软件开发,Scrum是一种偏重于过程的敏捷开发的具体方式.Scrum的英文意思是橄榄球运动的一个专业术语,表示“争球”的动作 ...
- js group by
var arr = ['Car', 'Car', 'Truck', 'Boat', 'Truck'];var hist = {};hist = arr.reduce((prev, item) => ...
- WARN [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:QuorumCnxManager@584] - Cannot open channel to 4 at election address Slave3.Hadoop/xxx.xxx.xxx.xxx
这些日子为这个错误苦恼很久了,网上找到的各种方法都试了一遍,还是没能解决. 安装好zookeeper后,运行zkServer.sh start 显示正常启动,但运行zkServer.sh status ...
- Unity自动切割动画
最近在开发项目时,需要处理大量的动画,于是就网上查找资料,然后写了这么编辑器工具: 就是在模型导入时,根据配置文件自动切割动画. 首先我们需要封装两个类:一个模型类和一个动画类 public clas ...