Reorganize ML noise suppression settings UI
Move the model comparison out of the always-visible Noise Suppression description and into the ML-only sub-settings. Add a compact info card for the selected model (CPU / voice quality / transients / download) plus a collapsible 4-model comparison. Group ML sub-settings into Model, Enhancements, and Test & calibrate sections with clear labels and separators. Fix invented --lt-border-color token and hardcoded rgba background to real TDS tokens. Build the model dropdown and DenoiseTester labels/compare buttons from DENOISE_MODELS so DeepFilterNet 3 is handled correctly. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
||||
import { Box, Button, Text } from 'folds';
|
||||
import { DenoiseModelId } from '../../../state/settings';
|
||||
import { DENOISE_MODELS } from '../../../utils/lotusDenoiseUtils';
|
||||
import {
|
||||
DenoiseNode,
|
||||
buildGateNode,
|
||||
@@ -307,7 +308,7 @@ export function DenoiseTester({ model, useGate, gateThreshold, nativeNS }: Denoi
|
||||
[stopLive, stopPlayback],
|
||||
);
|
||||
|
||||
const modelLabel = model === 'rnnoise' ? 'RNNoise' : model === 'speex' ? 'Speex' : 'DTLN';
|
||||
const modelLabel = DENOISE_MODELS.find((m) => m.id === model)?.name ?? model;
|
||||
|
||||
return (
|
||||
<Box direction="Column" gap="400">
|
||||
@@ -367,6 +368,7 @@ export function DenoiseTester({ model, useGate, gateThreshold, nativeNS }: Denoi
|
||||
{ label: 'RNNoise', model: 'rnnoise' },
|
||||
{ label: 'Speex', model: 'speex' },
|
||||
{ label: 'DTLN', model: 'dtln' },
|
||||
{ label: 'DeepFilterNet', model: 'deepfilternet' },
|
||||
] as const
|
||||
).map((b) => (
|
||||
<Button
|
||||
|
||||
Reference in New Issue
Block a user