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

用摄像头直播网站怎么做做网站销售的

用摄像头直播网站怎么做,做网站销售的,asp做的手机网站,网站制作一般多少钱MFCC特征提取 当S存在,接下来的步骤就到了离散余弦变换(DCT)步。 melspectrogram:根据名字可知mel语谱图。 power_to_db:显然就是对数功率的步骤。 def mfcc(*,y: Optional[np.ndarray] None,sr: float 22050,S: O…

在这里插入图片描述

MFCC特征提取

当S存在,接下来的步骤就到了离散余弦变换(DCT)步。
melspectrogram:根据名字可知mel语谱图。
power_to_db:显然就是对数功率的步骤。

def mfcc(*,y: Optional[np.ndarray] = None,sr: float = 22050,S: Optional[np.ndarray] = None,n_mfcc: int = 20,dct_type: int = 2,norm: Optional[str] = "ortho",lifter: float = 0,mel_norm: Optional[Union[Literal["slaney"], float]] = "slaney",**kwargs: Any,
) -> np.ndarray:if S is None:# multichannel behavior may be different due to relative noise floor differences between channelsS = power_to_db(melspectrogram(y=y, sr=sr, norm = mel_norm, **kwargs))fft = get_fftlib()M: np.ndarray = fft.dct(S, axis=-2, type=dct_type, norm=norm)[..., :n_mfcc, :]if lifter > 0:# shape lifter for broadcastingLI = np.sin(np.pi * np.arange(1, 1 + n_mfcc, dtype=M.dtype) / lifter)LI = util.expand_to(LI, ndim=S.ndim, axes=-2)M *= 1 + (lifter / 2) * LIreturn Melif lifter == 0:return Melse:raise ParameterError(f"MFCC lifter={lifter} must be a non-negative number")

进入melspectrogram函数可以看到S的计算过程,对应stft和幅值的平方计算。

def _spectrogram(*,y: Optional[np.ndarray] = None,S: Optional[np.ndarray] = None,n_fft: Optional[int] = 2048,hop_length: Optional[int] = 512,power: float = 1,win_length: Optional[int] = None,window: _WindowSpec = "hann",center: bool = True,pad_mode: _PadModeSTFT = "constant",
) -> Tuple[np.ndarray, int]:if S is not None:# Infer n_fft from spectrogram shape, but only if it mismatchesif n_fft is None or n_fft // 2 + 1 != S.shape[-2]:n_fft = 2 * (S.shape[-2] - 1)else:# Otherwise, compute a magnitude spectrogram from inputif n_fft is None:raise ParameterError(f"Unable to compute spectrogram with n_fft={n_fft}")if y is None:raise ParameterError("Input signal must be provided to compute a spectrogram")S = (np.abs(stft(y,n_fft=n_fft,hop_length=hop_length,win_length=win_length,center=center,window=window,pad_mode=pad_mode,))** power)return S, n_fft

Griffin-Lim 算法(vocoder)

给出声谱图,还原音频
Griffin-Lim 算法基于以下核心思想:

  • 幅度谱保留:直接使用已知的幅度谱信息
  • 迭代优化相位:通过迭代逐步逼近真实相位

算法流程可以概括为:

  1. 初始化相位(通常为随机相位)
  2. 通过当前相位和已知幅度谱合成复数谱
  3. 进行逆傅里叶变换得到时域信号
  4. 对时域信号进行短时傅里叶变换,提取新的相位
  5. 保留新相位,但使用原始已知幅度谱构建新的复数谱
  6. 重复步骤 3-5 直到收敛或达到最大迭代次数
import librosa
import librosa.display
import numpy as np
import soundfile as sf
import matplotlib.pyplot as plt# 1. 加载音频文件
audio_file = 'your_audio_file.wav'  # 替换为实际音频文件路径
y, sr = librosa.load(audio_file, sr=None)# 2. 提取音频特征 - 短时傅里叶变换(STFT)
n_fft = 2048
hop_length = 512
win_length = 1024D = librosa.stft(y, n_fft=n_fft, hop_length=hop_length, win_length=win_length)
S_db = librosa.amplitude_to_db(np.abs(D), ref=np.max)# 3. 可视化原始音频的频谱图
plt.figure(figsize=(10, 4))
librosa.display.specshow(S_db, sr=sr, x_axis='time', y_axis='log')
plt.colorbar(format='%+2.0f dB')
plt.title('Original Audio Spectrogram')
plt.tight_layout()
plt.savefig('original_spectrogram.png')
plt.close()# 4. 使用Griffin-Lim算法从幅度谱重建音频
n_iter = 32  # Griffin-Lim迭代次数
y_reconstructed = librosa.griffinlim(np.abs(D), n_iter=n_iter,hop_length=hop_length,win_length=win_length
)# 5. 保存重建的音频
output_file = 'reconstructed_audio.wav'
sf.write(output_file, y_reconstructed, sr)# 6. 计算原始音频和重建音频之间的均方误差(MSE)
mse = np.mean((y[:len(y_reconstructed)] - y_reconstructed) ** 2)
print(f"原始音频长度: {len(y)} 样本")
print(f"重建音频长度: {len(y_reconstructed)} 样本")
print(f"均方误差(MSE): {mse:.6f}")# 7. 可视化重建音频的频谱图
D_reconstructed = librosa.stft(y_reconstructed, n_fft=n_fft, hop_length=hop_length, win_length=win_length)
S_reconstructed_db = librosa.amplitude_to_db(np.abs(D_reconstructed), ref=np.max)plt.figure(figsize=(10, 4))
librosa.display.specshow(S_reconstructed_db, sr=sr, x_axis='time', y_axis='log')
plt.colorbar(format='%+2.0f dB')
plt.title('Reconstructed Audio Spectrogram')
plt.tight_layout()
plt.savefig('reconstructed_spectrogram.png')
plt.close()    

文章转载自:

http://jNR1WaHp.nysjb.cn
http://nqM4Yxeu.nysjb.cn
http://Rx8jBP0f.nysjb.cn
http://ztmB68dw.nysjb.cn
http://5tLmz9VY.nysjb.cn
http://y7OPwiPT.nysjb.cn
http://k7neEH70.nysjb.cn
http://9gBsyapW.nysjb.cn
http://1IiZRD7r.nysjb.cn
http://xCfKAHCJ.nysjb.cn
http://hYXzw9g5.nysjb.cn
http://iTzGVhwu.nysjb.cn
http://qVB8mfMx.nysjb.cn
http://RgnfelL9.nysjb.cn
http://bCtMEB1C.nysjb.cn
http://w4tgGXLF.nysjb.cn
http://rvOW2ZHP.nysjb.cn
http://RPl9wVrE.nysjb.cn
http://IjDK18lW.nysjb.cn
http://81rgM4NW.nysjb.cn
http://TFUaX2nS.nysjb.cn
http://jUEwJuFN.nysjb.cn
http://3EM4YnUF.nysjb.cn
http://FWoC8xni.nysjb.cn
http://PdZZ9Ku6.nysjb.cn
http://xOlHs6uF.nysjb.cn
http://kksPfd24.nysjb.cn
http://mm3hVriS.nysjb.cn
http://pRKSYO6U.nysjb.cn
http://7Dp6uw52.nysjb.cn
http://www.dtcms.com/wzjs/706255.html

相关文章:

  • 广东省住房和建设局网站wordpress aff
  • 集团公司做网站的好处有什么芜湖推广公司
  • 上海兴业建设有限公司网站固始网站建设
  • 深圳医疗网站建设报价安徽省建设工程执业信息网
  • 德泰诺网站建设牡丹江地区做网站的公司
  • 网站运营者seo百度关键词排名
  • 什么网站出项目找人做wordpress中文模板
  • 注册物业公司需要什么手续和条件seo全网推广
  • 扬州做企业网站百度快速收录网站
  • 网站设计公司种类学校学不到网站建设
  • 惠州企业建站模板什么是网站开发与建设
  • 有源码就可以自己做H5网站吗外贸网站如何做外链
  • 长沙网站优化推广方案汕头个人网站推广建设
  • 珠海建设网站外贸seo软件
  • 网站建设找什么公司好漯河北京网站建设公司
  • 怎样设置网站关键词dede 分类信息网站 模板
  • 淄博论坛网站建设网站更换备案
  • 鄂州市建设局网站景安服务器安装wordpress
  • 靖江做网站的佛山企业网站建设公司推荐
  • 买了域名如何做网站赣州房产网
  • 镇江网站推广排名北京中小企业公司名单
  • 怎么做网站子页软件开发自学入门教程
  • 农业门户网站建设目标目前做外贸的网站哪个比较好
  • 无需下载直接进入的网站的代码贵州讯玛网站建设
  • 做网站搭建和微信平台推广做cms网站
  • 做网站被骗首付款怎么报案优化算法 网站
  • 网站建设资金方案永修建设局网站
  • 做阀门销售什么网站最好vs网站搜索栏怎么做
  • 哪些网站教你做系统做网站用小动画
  • 整站seo运营win 2008 iis建立网站