Module_DeepLearning_Audio_zh - vorcyc/Vorcyc.Mathematics GitHub Wiki

当前位置 : 首页/深度学习模块/音频集成

深度学习 × 信号处理集成

本文档汇总 Signal → BatchTensor → Trainer 全链路(阶段 A–D),主 API 在 Vorcyc.Mathematics.DeepLearning.Integration 与 Integration.Frontends。

数据布局(NHWC)

用途 形状 典型入口
波形批 N×1×1×L BatchTensorSignalExtensions.FromSignalVectors
谱图批 N×T×F×1 SpectrogramBatchBuilder.FromSignals
周期图 / 特征向量 N×1×1×F FeatureBatchBuilder.FromPeriodograms / FromExtractorMeans
帧特征序列 N×T×F×1 FeatureBatchBuilder.FromExtractors
分类标签 N×1×1×C AudioTrainingSamples.CreateOneHotTargets
回归标量 N×1×1×1 AudioTrainingSamples.CreateScalarTargets

依赖方向:DeepLearning → SignalProcessing(DSP 核心不引用 DL)。

阶段 A:桥接与训练样本

var sample = AudioTrainingSamples.SpectrogramClassification(
    signals, labels, numClasses: 2, stft);

trainer.FitBatchSequential(model, loss, optimizer, [sample], epochs: 100);

阶段 B:特征打包

var mfcc = AudioTrainingSamples.CreateDefaultMfccExtractor(8000);
var features = FeatureBatchBuilder.FromExtractorMeans(signals, mfcc); // N×1×1×13

阶段 C:可编入网络的 DSP 前端

var stack = AudioFrontendLayers.CreateMelSpectrogramStack(8000, 64, 32, melBands: 24);
var model = new BatchSequential<float>(stack[0], stack[1], stack[2], /* CNN head */);
  • BatchStftMagnitudeLayer 反向为 stop-gradient(仅训练 CNN 头)。
  • BatchPreEmphasisLayer、BatchMelFilterbankLayer 支持梯度(线性)。

阶段 D:神经回归与波形回归

神经网络的曲线拟合请使用 MlpRegressor(DeepLearning.Training)——见 Examples/DeepLearning_example/CurveFitDemo.cs。波形 → 标量回归可构建 BatchSequential,用批 MSE 损失训练:

var sample = AudioTrainingSamples.WaveformRegression(signals, scalarTargets);
trainer.FitBatchSequential(model, new BatchMeanSquaredErrorLoss<float>(), optimizer, [sample], epochs: 100);

测试索引

测试 说明
SignalBatchTensor_test 波形往返
SpectrogramBatch_training_test 谱图 CNN 分类
FeatureBatchBuilder_test 特征形状
MfccMean_training_test MFCC 均值 + MLP
AudioFrontend_training_test 波形 → 前端 → CNN
WaveformScalarRegression_test 波形 → 幅度回归

更完整的模块说明见 Module_DeepLearning_zh.md。

⚠️ **GitHub.com Fallback** ⚠️