当前位置: 首页 > news >正文

废橡胶网站建设运维是做什么的

废橡胶网站建设,运维是做什么的,西南交通建设集团股份有限公司网站,海外购物平台都有哪些工具以及使用到的库 ffmpegsoxaudacitypydubscipylibrosapyAudioAnalysisplotly 本文分为两个部分#xff1a; P1#xff1a;如何使用ffmpeg和sox处理音频文件 P2#xff1a;如何编程处理音频文件并执行基本处理 P1 处理语音数据——命令行方式 格式转换 ffmpeg -i video…工具以及使用到的库 ffmpegsoxaudacitypydubscipylibrosapyAudioAnalysisplotly 本文分为两个部分 P1如何使用ffmpeg和sox处理音频文件 P2如何编程处理音频文件并执行基本处理 P1 处理语音数据——命令行方式 格式转换 ffmpeg -i video.mkv audio.mp3使用ffmpeg将输入mkv文件转为mp3文件 降采样、通道转换 ffmpeg -i audio.wav -ar 16000 -ac 1 audio_16K_mono.wavar:声频采样率audio rateac声频通道audio channel 此处是将原来44.1kHz的双通道wav文件转为单通道wav文件 获取音频信息 ffmpeg -i audio_16K_mono.wav将得到 Input #0, wav, from ‘audio_16K_mono.wav’: Metadata: encoder : Lavf57.71.100 Duration: 00:03:10.29, bitrate: 256 kb/s Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 16000 Hz, mono, s16, 256 kb/s#0表示只有一个通道encoder为libavformat支持的一种容器Duration时长bitrate比特率256kb/s表示音频每秒传输的数据量高质量音频一般比较大Stram流#00单通道pcm_s16le: pcm(脉冲编码调制pulse-code modulation)signed integer 1616位有符号整型格式采样le表示小端little endian高位数据存地址高位地位数据存地址地位有如[1][0][0][0] / 0x0001。 mono单通道 小插曲 最近看到一道数据类型题 题目为什么float类型 ( 1 e 10 3.14 ) − 1 e 10 0 ? \mathbf{(1e103.14)-1e100?} (1e103.14)−1e100? 解题如下 1 e 10 \mathbf{1e10} 1e10二进制表示为 001 0 ′ 010 1 ′ 010 0 ′ 000 0 ′ 101 1 ′ 111 0 ′ 010 0 ′ 000 0 ′ 0000 \mathbf{001001010100000010111110010000000000} 0010′0101′0100′0000′1011′1110′0100′0000′0000 或者表示为 1.001 0 ′ 101 0 ′ 000 0 ′ 010 1 ′ 111 1 ′ 001 0 ′ 000 0 ′ 000 0 ′ 0 2 ∗ 2 33 \mathbf{1.001010100000010111110010000000000_2*2^{33}} 1.0010′1010′0000′0101′1111′0010′0000′0000′02​∗233 浮点数三要素 首位0表示正数1表示负数中间位8位为科学计数法指数部分上例为33与偏置量127的和此例为160二进制为1010’0000尾部23位二进制表示的小数部分的前23位此例为0010’1010’0000’0101’1111’001 故 1 e 10 \mathbf{1e10} 1e10的浮点数为 0 ′ 101 0 ′ 000 0 ′ 001 0 ′ 101 0 ′ 000 0 ′ 010 1 ′ 111 1 ′ 001 \mathbf{01010000000101010000001011111001} 0′1010′0000′0010′1010′0000′0101′1111′001 到此为止可知舍去了科学计数法中小数部分的后10位 小数的二进制表示两个要素 整数部分正常表示3.14整数部分为0011小数部分乘以2取整数部分 0.14*20.28 取00.28*20.56 取00.56*21.12 取10.12*20.24 取00.24*20.48 取00.48*20.96 取00.96*21.92 取1… 3.14的二进制表示为 11.0010001... \mathbf{11.0010001...} 11.0010001... 综上 1 e 10 3.14 \mathbf{1e103.14} 1e103.14的二进制表示为 1.001 0 ′ 101 0 ′ 000 0 ′ 010 1 ′ 111 1 ′ 001 0 ′ 000 0 ′ 000 1 ′ 1001 ’ 000 1 2 ∗ 2 33 \mathbf{1.001010100000010111110010000000011001’0001_2*2^{33}} 1.0010′1010′0000′0101′1111′0010′0000′0001′1001’00012​∗233 转为浮点数为 0 ′ 101 0 ′ 000 0 ′ 001 0 ′ 101 0 ′ 000 0 ′ 010 1 ′ 111 1 ′ 001 \mathbf{01010000000101010000001011111001} 0′1010′0000′0010′1010′0000′0101′1111′001 与 1 e 10 \mathbf{1e10} 1e10一样故float类型 ( 1 e 10 3.14 ) − 1 e 10 0 \mathbf{(1e103.14)-1e10}0 (1e103.14)−1e100 修剪音频 ffmpeg -i audio.wav -ss 60 -t 20 audio_small.wavi输入音频audio.wavss: 截取起始秒t截取段时长audio_small.wav:输出文件 串联视频 新建一个list_of_files_to_concat的txt文档内容如下 file file1.wav file file2.wav file file3.wav采用以下命令行可将三个文件串联输出编码方式为复制 ffmpeg -f concat -i list_of_files_to_concat -c copy output.wav分割视频 以下命令行将输入视频分割为1s一个 ffmpeg -i output.wav -f segment -segment_time 1 -c copy out%05d.wav交换声道 ffmpeg -i stereo.wav -map_channel 0.0.1 -map_channel 0.0.0 stereo_inverted.wav0.0.1输入文件音频流右声道0.0.0输入文件音频流左声道 合并声道 ffmpeg -i left.wav -i right.wav -filter_complex [0:a][1:a]joininputs2:channel_layoutstereo[a] -map [a] mix_channels.wavfilter_complex复杂音频滤波器图[0:a],[1:a]第一个和第二个文件的音频流joininputs2表示两个输入流混合channel_layoutstereo混合后输出为立体声[a]输出音频流标签map ”[a]将‘[a]标签的音频流映射到输出文件 分割立体声音频为左右单声道文件 ffmpeg -i stereo.wav -map_channel 0.0.0 left.wav -map_channel 0.0.1 right.wavmap_channel 0.0.0:将左声道映射到第一个输出文件map_channel 0.0.1:将右声道映射到第二个输出文件 将某个声道静音 ffmpeg -i stereo.wav -map_channel -1 -map_channel 0.0.1 muted.wavmap_channel -1:忽略某声道map_channel 0.0.1:将右声道映射到输出文件 音量调节 ffmpeg -i data/music_44100.wav -filter:a “volume0.5” data/music_44100_volume_50.wav ffmpeg -i data/music_44100.wav -filter:a “volume2.0” data/music_44100_volume_200.wavfilter:a使用音频过滤器“volume0.5”将音频音量变为原来一半“volume2”将音频音量变为原来两倍 图1 原声半声倍声(自上而下) 由图1可知二倍声出现削波失真现象。 sox音量调节 sox -v 0.5 data/music_44100.wav data/music_44100_volume_50_sox.wav sox -v 2.0 data/music_44100.wav data/music_44100_volume_200_sox.wavsox -v n \text{sox -v n} sox -v n 输入文件路径 输出文件路径 v n:音量调节系数n可理解为倍数。 P2 处理语音数据——编程方式 wav: scipy.io.wavfilemp3:pydub 以数组形式加载音频文件 # 以数组形式读取wav和mp3 from pydub import AudioSegment import numpy as np from scipy.io import wavfile# 用 scipy.io.wavfile 读取wav文件 fs_wav, data_wav wavfile.read(resampled.wav)# 用 pydub 读取mp3 audiofile AudioSegment.from_file(resampled.mp3) data_mp3 np.array(audiofile.get_array_of_samples()) fs_mp3 audiofile.frame_rateprint(Sq Error Between mp3 and wav data {}.format(((data_mp3 - data_wav)**2).sum()/len(data_wav))) print(Signal Duration {} seconds.format(data_wav.shape[0] / fs_wav))# 输出,我使用ffmpeg将wav转成MP3比特率将为24kb Sq Error Between mp3 and wav data 3775.2859044790266 Signal Duration 34.5513125 seconds显示左右声道 import numpy as np from scipy.io import wavfile import matplotlib.pyplot as plt fs,datawavfile.read(resampled_double.wav) timenp.arange(0,len(data))/fs fig,axsplt.subplots(2,1,figsize(10,6),sharexTrue) axs[0].plot(time,data[:,0],labelLeft Channel,colorblue) axs[0].set_ylabel(Amplitude) axs[0].legend() axs[1].plot(time,data[:,1],labelRight Channel,colororange) axs[1].set_ylabel(Amplitute) axs[1].set_xlabel(Time(seconds)) axs[1].legend() plt.suptitle(Stereo Audio Waveform) plt.show()图2 左右声道展示 正则化 import matplotlib.pyplot as plt from scipy.io import wavfile import numpy as np fs,data wavfile.read(resampled_double.wav) timenp.arange(0,len(data))/fs plt.figure(figsize(10,4)) plt.plot(time,data[:,0]/2^15) plt.xlabel(Time(seconds)) plt.ylabel(Amplitude) plt.title(Stereo Audio Waveform)图3 数据量化后的波形图 修剪音频 # 显示2到4秒的波形 import numpy as np import matplotlib.pyplot as plt from scipy.io import wavfile fs,datawavfile.read(resampled_double.wav) timenp.arange(0,len(data[2*fs:4*fs]))/fs plt.figure(figsize(10,4)) plt.plot(time,data[2*fs:4*fs]) plt.xlabel(Time/s) plt.ylabel(Amplitude) plt.title(Stereo Audio Waveform) plt.show()图4 剪辑后音频波形 分割为固定大小 import numpy as np from scipy.io import wavfile import IPython fs,signalwavfile.read(resampled.wav) segment_size_t1 segment_sizesegment_size_t*fs segments[signal[x:xsegment_size]for x in range(0,len(signal),segment_size)] for i,s in enumerate(segments):if len(s)segment_size:snp.pad(s,(0,(segment_size-len(s))),constant) # 这里是为了每个clip都为1swavfile.write(fresampled_segment_{i}_{i1}.wav,fs,s) IPython.display.display(IPython.display.Audio(resampled_segment_34_35.wav))# 输出成功输出35个1s的wav文件简单算法——删去无声片段 import IPython import matplotlib.pyplot as plt import numpy as np energies[((s/2**15)**2).sum()/len(s) for s in segments] # 防止溢出 thresnp.percentile(energies,20) indices_of_segments_to_keep(np.where(energiesthres)[0]) segments2np.array(segments)[indices_of_segments_to_keep] new_signalnp.concatenate(segments2) wavfile.write(processed_new.wav,fs,new_signal.astype(np.int16)) # 转成int plt.figure(figsize(10,6)) plt.plot(energies,labelEnergies,colorred) plt.plot(np.ones(len(energies))*thres,labelThresholds,colorblue) plt.title(Energies VS Thresholds) plt.legend() plt.show() IPython.display.display(IPython.display.Audio(processed_new.wav)) IPython.display.display(IPython.display.Audio(resampled.wav))图5 根据能量无声片段的删除及删除后的时长 往单声道音频中加入节拍 import numpy as np import scipy.io.wavfile as wavfile import librosa import IPython import matplotlib.pyplot as plt# 加载文件并提取节奏和节拍 [Fs, s] wavfile.read(resampled.wav) tempo, beats librosa.beat.beat_track(ys.astype(float), srFs, unitstime) beats - 0.05# 在每个节拍的第二个声道上添加小的220Hz声音 s s.reshape(-1, 1) s np.array(np.concatenate((s, np.zeros(s.shape)), axis1)) for ib, b in enumerate(beats):t np.arange(0, 0.2, 1.0 / Fs)amp_mod 0.2 / (np.sqrt(t)0.2) - 0.2amp_mod[amp_mod 0] 0x s.max() * np.cos(2 * np.pi * t * 220) * amp_mods[int(Fs * b): int(Fs * b) int(x.shape[0]), 1] x.astype(int16)# 写入一个wav文件其中第二个声道具有估计的节奏 wavfile.write(tempo.wav, Fs, np.int16(s))# 在笔记本中播放生成的文件 IPython.display.display(IPython.display.Audio(tempo.wav))# 绘制波形图 time np.arange(0, len(s)) / Fs fig, axs plt.subplots(2, 1, figsize(10, 6), sharexTrue) axs[0].plot(time, s[:, 0], label左声道, colororange) axs[0].set_ylabel(振幅) axs[0].legend() axs[1].plot(time, s[:, 1], label右声道, colorblue) axs[1].set_xlabel(时间/秒) axs[1].set_ylabel(振幅) axs[1].legend() plt.show()图6 添加tempo的左右声道及音频 实时录制以及频率分析 # paura_lite: # 一个超简单的命令行音频录制器具有实时频谱可视化import numpy as np import pyaudio import struct import scipy.fftpack as scp import termplotlib as tpl import os# 获取窗口尺寸 rows, columns os.popen(stty size, r).read().split()buff_size 0.2 # 窗口大小秒 wanted_num_of_bins 40 # 要显示的频率分量数量# 初始化声卡进行录制 fs 8000 pa pyaudio.PyAudio() stream pa.open(formatpyaudio.paInt16, channels1, ratefs,inputTrue, frames_per_bufferint(fs * buff_size))while 1: # 对于每个录制的窗口直到按下CtrlC# 获取当前块并将其转换为short整数列表block stream.read(int(fs * buff_size))format %dh % (len(block) / 2)shorts struct.unpack(format, block)# 然后进行归一化并转换为numpy数组x np.double(list(shorts)) / (2**15)seg_len len(x)# 获取当前窗口的总能量并计算归一化因子# 用于可视化最大频谱图值energy np.mean(x ** 2)max_energy 0.02 # 条形设置为最大的能量max_width_from_energy int((energy / max_energy) * int(columns)) 1if max_width_from_energy int(columns) - 10:max_width_from_energy int(columns) - 10# 获取FFT的幅度和相应的频率X np.abs(scp.fft(x))[0:int(seg_len/2)]freqs (np.arange(0, 1 1.0/len(X), 1.0 / len(X)) * fs / 2)# ... 并重新采样为固定数量的频率分量用于可视化wanted_step (int(freqs.shape[0] / wanted_num_of_bins))freqs2 freqs[0::wanted_step].astype(int)X2 np.mean(X.reshape(-1, wanted_step), axis1)# 将频率FFT作为水平直方图绘制fig tpl.figure()fig.barh(X2, labels[str(int(f)) Hz for f in freqs2[0:-1]],show_valsFalse, max_widthmax_width_from_energy)fig.show()# 添加足够多的新行以清除屏幕在下一次迭代中print(\n * (int(rows) - freqs2.shape[0] - 1)) 图7 实时录制并获取频谱直方图
文章转载自:
http://www.morning.kfjnx.cn.gov.cn.kfjnx.cn
http://www.morning.wddmr.cn.gov.cn.wddmr.cn
http://www.morning.bpmfz.cn.gov.cn.bpmfz.cn
http://www.morning.zlnf.cn.gov.cn.zlnf.cn
http://www.morning.zxdhp.cn.gov.cn.zxdhp.cn
http://www.morning.ymbqr.cn.gov.cn.ymbqr.cn
http://www.morning.gnbtp.cn.gov.cn.gnbtp.cn
http://www.morning.ndxmn.cn.gov.cn.ndxmn.cn
http://www.morning.amonr.com.gov.cn.amonr.com
http://www.morning.ymwnc.cn.gov.cn.ymwnc.cn
http://www.morning.jfxth.cn.gov.cn.jfxth.cn
http://www.morning.bqyb.cn.gov.cn.bqyb.cn
http://www.morning.xqxrm.cn.gov.cn.xqxrm.cn
http://www.morning.plqqn.cn.gov.cn.plqqn.cn
http://www.morning.ztqyj.cn.gov.cn.ztqyj.cn
http://www.morning.rjnx.cn.gov.cn.rjnx.cn
http://www.morning.jydhl.cn.gov.cn.jydhl.cn
http://www.morning.qwmdx.cn.gov.cn.qwmdx.cn
http://www.morning.fgxnb.cn.gov.cn.fgxnb.cn
http://www.morning.bfgbz.cn.gov.cn.bfgbz.cn
http://www.morning.zlhbg.cn.gov.cn.zlhbg.cn
http://www.morning.xkyst.cn.gov.cn.xkyst.cn
http://www.morning.rkwlg.cn.gov.cn.rkwlg.cn
http://www.morning.bfybb.cn.gov.cn.bfybb.cn
http://www.morning.lgwjh.cn.gov.cn.lgwjh.cn
http://www.morning.rrpsw.cn.gov.cn.rrpsw.cn
http://www.morning.knmby.cn.gov.cn.knmby.cn
http://www.morning.hmxb.cn.gov.cn.hmxb.cn
http://www.morning.jkcnq.cn.gov.cn.jkcnq.cn
http://www.morning.gbyng.cn.gov.cn.gbyng.cn
http://www.morning.cbczs.cn.gov.cn.cbczs.cn
http://www.morning.tntbs.cn.gov.cn.tntbs.cn
http://www.morning.ngcw.cn.gov.cn.ngcw.cn
http://www.morning.sjwzz.cn.gov.cn.sjwzz.cn
http://www.morning.pqqhl.cn.gov.cn.pqqhl.cn
http://www.morning.fdfsh.cn.gov.cn.fdfsh.cn
http://www.morning.xmbhc.cn.gov.cn.xmbhc.cn
http://www.morning.clfct.cn.gov.cn.clfct.cn
http://www.morning.dwztj.cn.gov.cn.dwztj.cn
http://www.morning.sacxbs.cn.gov.cn.sacxbs.cn
http://www.morning.pcshb.cn.gov.cn.pcshb.cn
http://www.morning.rgnp.cn.gov.cn.rgnp.cn
http://www.morning.zfyfy.cn.gov.cn.zfyfy.cn
http://www.morning.lhgkr.cn.gov.cn.lhgkr.cn
http://www.morning.qzqjz.cn.gov.cn.qzqjz.cn
http://www.morning.qhjkz.cn.gov.cn.qhjkz.cn
http://www.morning.kxltf.cn.gov.cn.kxltf.cn
http://www.morning.hxlch.cn.gov.cn.hxlch.cn
http://www.morning.lhrcr.cn.gov.cn.lhrcr.cn
http://www.morning.lrybz.cn.gov.cn.lrybz.cn
http://www.morning.xxzjb.cn.gov.cn.xxzjb.cn
http://www.morning.gkgr.cn.gov.cn.gkgr.cn
http://www.morning.tturfsoc.com.gov.cn.tturfsoc.com
http://www.morning.tkchm.cn.gov.cn.tkchm.cn
http://www.morning.hxwrs.cn.gov.cn.hxwrs.cn
http://www.morning.sfwfk.cn.gov.cn.sfwfk.cn
http://www.morning.wyjpt.cn.gov.cn.wyjpt.cn
http://www.morning.yqqgp.cn.gov.cn.yqqgp.cn
http://www.morning.ynlbj.cn.gov.cn.ynlbj.cn
http://www.morning.dcpbk.cn.gov.cn.dcpbk.cn
http://www.morning.xsgxp.cn.gov.cn.xsgxp.cn
http://www.morning.xzlp.cn.gov.cn.xzlp.cn
http://www.morning.jikuxy.com.gov.cn.jikuxy.com
http://www.morning.flpjy.cn.gov.cn.flpjy.cn
http://www.morning.dwwlg.cn.gov.cn.dwwlg.cn
http://www.morning.rjhts.cn.gov.cn.rjhts.cn
http://www.morning.pkdng.cn.gov.cn.pkdng.cn
http://www.morning.bhpsz.cn.gov.cn.bhpsz.cn
http://www.morning.xkyst.cn.gov.cn.xkyst.cn
http://www.morning.rmmz.cn.gov.cn.rmmz.cn
http://www.morning.nkkr.cn.gov.cn.nkkr.cn
http://www.morning.zlgr.cn.gov.cn.zlgr.cn
http://www.morning.china-cj.com.gov.cn.china-cj.com
http://www.morning.lnbcx.cn.gov.cn.lnbcx.cn
http://www.morning.kpfds.cn.gov.cn.kpfds.cn
http://www.morning.ttkns.cn.gov.cn.ttkns.cn
http://www.morning.wlgpz.cn.gov.cn.wlgpz.cn
http://www.morning.dlhxj.cn.gov.cn.dlhxj.cn
http://www.morning.gkgr.cn.gov.cn.gkgr.cn
http://www.morning.zylzk.cn.gov.cn.zylzk.cn
http://www.tj-hxxt.cn/news/254233.html

相关文章:

  • 专业做网站 台州玉环免费云服务器主机
  • 火狐网站开发好的插件企业如何制定网络营销策略
  • 深圳网站设计网站建设哪个好男女做羞羞视频网站
  • wordpress主页如何加东西seo网络推广机构
  • sns社交网站建设淘宝刷单网站制作
  • 怎样看一个网站是不是织梦做的scratch在线编程网站
  • 代做效果图的网站好建设银行如何招聘网站
  • 做汽配外贸哪个网站wordpress中接入支付宝
  • 织梦响应式网站怎么做wordpress 摘要 格式
  • 邯郸网站建设做外贸的 需要什么样的网站
  • 网站建设 上海土特产直营建设网站的调研
  • 做国际网站一般做什么风格网站权重分析
  • 广州第一网站网站建设主要推广方式
  • 网站建设优化价格赤峰建设厅官方网站
  • 网站建设的基本需求有哪些方面数据推广平台有哪些
  • 邢台做wap网站费用医院网络系统
  • 自己搭建服务器 发布网站 域名如何申请昆明专业网站营销
  • 做微商如何网站推广wordpress 修改菜单
  • 网站后期的维护建筑设计网站大全网站
  • 做电子书屋的网站深圳龙华是低风险区吗
  • 哔哩哔哩推广网站哈尔滨网站优化对策
  • 北京手机网站设计费用.net 响应式网站
  • 建设电子票务系统的网站需要多少钱做一个网站的计划书
  • 怎样做网站卖东西安阳网站建设哪里最好
  • 网站准备建设的内容网站后天添加文章不显示
  • 攀枝花建设银行网站seo推广视频隐迅推专业
  • 免费的课程设计哪个网站有python做网站 jsp
  • 龙华企业网站建设苏州营销策划公司有哪些
  • 设计素材网站图案免费创建简易个人网站
  • 国外域名建站在哪里可以做企业官网