Module_DeepLearning_Audio_zh - vorcyc/Vorcyc.Mathematics GitHub Wiki
本文档汇总 Signal → BatchTensor → Trainer 全链路(阶段 A–D),主 API 在 Vorcyc.Mathematics.DeepLearning.Integration 与 Integration.Frontends。
| 用途 | 形状 | 典型入口 |
|---|---|---|
| 波形批 | 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)。
var sample = AudioTrainingSamples.SpectrogramClassification(
signals, labels, numClasses: 2, stft);
trainer.FitBatchSequential(model, loss, optimizer, [sample], epochs: 100);var mfcc = AudioTrainingSamples.CreateDefaultMfccExtractor(8000);
var features = FeatureBatchBuilder.FromExtractorMeans(signals, mfcc); // N×1×1×13var 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支持梯度(线性)。
神经网络的曲线拟合请使用 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。