Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。 linux下用sox可以给pcm文件加头 例如:test.pcm是不带wav头的pcm文件 $ sox -t raw -c 1 -e signed-integer -b 16 -r 16000 test.pcm test.wav 要查看音频文件的格式可以用soxi $ soxi test.wav Input File : 'test.wav' Channels : 1 Sample Rate : 16000 Precision : 16-bit Duration : 00:00:02.22 = 35520 samples ~ 166.5 CDDA sectors File Size : 71.1k Bit Rate : 256k Sample Encoding: 16-bit Signed Integer PCM sox也可用于修改文件差样率,如test.wav文件的采样率修改为8000HZ $ sox test.wav -r 8000 test-8K.wav 对于批量修改可以如下操作: 法1:awk 将当前文件夹下的pcm文件批量加文件头 rename '.raw' '' * find -name"*" >file.list cat file.list | awk '{ cmd ="sox -t raw -c 1 -e signed-integer -b 16 -r 16000"$0""$0".wav";print cmd;system(cmd);}' mkdir ../voice_wav mv *.wav ../voice_wav/ 法二:bash 将当前文件夹下的wav文件批量修改为16000HZ #!/bin/bash for x in .} sox $b -r 8000 tmp-$b rm -rf $b mv tmp-$b $b done 附:linux下打乱文本行序、文本分割与文本合并 一、打乱文本行序 linux下,将train.txt按行打乱,每行内容则保持不变,直接将输出写入新的文本train_rand.txt,命令: sudo awk 'BEGIN{ 100000*srand();}{ printf"%s %s\n", rand(), $0}' train.txt |sort -k1n | awk '{gsub($1FS,""); print $0}' >train_rand.txt srand(); rand()在awk内获取随机数 gsub替换文本 二、文本分割 将一个大文本拆分为几个小文本可以用命令split: split -l n 原始文件 拆分后文件名前缀 最后一个文件的行数没有n行则以剩余行数进行分配,比如有一个名为train.txt的文件,公有210行,进行拆分: 拆分后会生成三个文本,最后一个文本仅有10行 split -l 100 train.txt train_split 三、文本合并 将几个文本train_1.txt train_2.txt train_3.txt合并为一个 train.txt可以用命令: cat train_1.txt train_2.txt train_3.txt >train.txt Linux是一套免费使用和自由传播的类Unix操作系统 |
温馨提示:喜欢本站的话,请收藏一下本站!