Pith. sign in

REVIEW 5 major objections 5 minor 28 references

Adaptive Noise Resilient Keyword Spotting Using One-Shot Learning

T0 review · 5 major / 5 minor · reviewed 2026-08-15 · deepseek-v4-flash

Pith's one-line read One noisy utterance per keyword adapts a keyword spotter to a new noise condition.

desk verdict One-shot last-layer adaptation for KWS noise robustness is a promising proof-of-concept, but the missing support-set provenance and lack of error bars leave the central gains unproven. read the letter →

arxiv 2505.09304 v2 pith:RPLCMF4M submitted 2025-05-14 cs.SD cs.LGeess.AS

classification cs.SDcs.LGeess.AS
keywords keywordspottingone-shotlearningdomainadaptationnoiserobustnesstransferon-devicelog-melspectrogramtinyML
verification ladder T0 review T1 audit T2 compute T3 formal

The pith

A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.

The reading

This paper claims that a pretrained keyword-spotting network can be adapted to a new real-world noise condition by fine-tuning only its final fully-connected layer on a single noise-contaminated utterance per keyword class, for a single training epoch. If the claim holds, embedded devices could adjust themselves to their acoustic surroundings with almost no stored data and almost no added latency. The authors test the method with two pretrained networks and three on-site noise sources, reporting that the adapted networks outperform the original ones at every tested signal-to-noise ratio from -3 dB to 24 dB, with accuracy gains between 4.9% and 46.0%.

What carries the argument

The mechanism is a frozen convolutional feature extractor paired with a trainable output layer. The network takes log-Mel spectrograms and runs them through five convolutional layers with batch normalization, then an average-pooling layer that condenses each channel to a single value, and finally a fully-connected layer with 12 neurons and softmax. Adaptation updates only the weights of that final layer, using stochastic gradient descent with cross-entropy loss on one contaminated utterance per class, so the number of trainable parameters is tiny and the stored update is small. The frozen features are expected to carry the general acoustic structure, while the output layer is re-learned to map those features to classes under the new noise.

What would settle it

Take the clean-trained baseline model, adapt it with one shot and one epoch on a single car-horn utterance at -3 dB from a speaker who does not appear anywhere in the training split, then evaluate on the standard test set at the same SNR. If accuracy does not rise above the unadapted model, the reported gain depends on the adaptation utterance's speaker or recording, not on the noise condition.

Watch

Extended reading notes

Core claim

The central discovery is that one-shot, one-epoch fine-tuning of the 12-neuron output layer is enough to transfer a frozen five-layer convolutional feature extractor to a new noise condition. Across car horn, dog bark, and street music noise, the adapted models consistently beat the unadapted pretrained models, with the largest gains at SNR below about 18 dB. The paper also finds that a noise-aware pretrained model, trained with colored and indoor noises, is not always the better starting point: which base model adapts best depends on the noise source, and at high SNR the pretrained models are already accurate enough that adaptation is rarely needed.

Load-bearing premise

The load-bearing premise is that a single recorded utterance of each keyword, captured in the new noise, adequately represents the new condition so that re-training only the final layer transfers the frozen features to that noise.

Editorial extensions

If this is right

  • An on-device update requires storing only the final-layer weights, making continuous noise adaptation plausible on memory-limited microcontrollers.
  • A single noise-contaminated utterance per keyword recovers accuracy at low SNR; increasing to five shots does not reliably improve on the one-epoch result.
  • Adapting at very low SNR gives the largest gains for later testing up to about 18 dB SNR, while adapting at 24 dB helps only when the test condition is also high-SNR.
  • The choice of starting pretrained model matters: the clean-trained baseline and the noise-aware model each win for some noise sources, so deployment should pick the base model per expected noise type.

Reading between the lines

Editorial extensions of the paper, not claims the author makes directly.

  • Outside the paper: since only the output layer is updated, the method behaves like a one-step label-shift correction; a natural comparison is re-estimating the output bias directly from a handful of noisy samples without any gradient update.
  • Outside the paper: the paper adapts and tests at the same noise source and SNR level; a stress test would adapt on street music at -3 dB and test on car horn at 6 dB to reveal whether the adaptation is noise-specific or a general recalibration.
  • Outside the paper: the reported accuracy curves suggest a simple deployment policy—skip adaptation whenever an estimated running SNR is above about 18 dB, since the pretrained models already exceed 90% accuracy there; the paper notes the redundancy but does not automate the trigger.
Share X Bluesky LinkedIn Reddit HN

Signed reviews

No signed human review yet.

Editorial analysis

A structured set of objections, weighed in public.

Desk editor's note, referee report, and a circularity audit.

Referee Report

5 major / 5 minor

Summary. The manuscript proposes a lightweight few-shot transfer-learning procedure for adapting pretrained keyword-spotting (KWS) models to a new on-site noise condition. The method freezes all convolutional layers and fine-tunes only the final fully connected layer for one epoch, using one contaminated utterance per keyword class (1-shot). Two models are pretrained on Google Speech Commands v2: a clean baseline and a noise-aware model trained with additional colored and indoor noise. The adaptation is evaluated on three urban noise sources (car horn, dog bark, street music) at SNRs from -3 to 24 dB, and the authors report consistent accuracy gains, with improvements of 4.9% to 46.0% claimed in the abstract. The paper also analyzes the effect of varying the number of shots (1-5) and epochs (1-5) during adaptation.

Significance. If the reported result holds, the contribution is practically significant: it demonstrates that a very small amount of on-site noisy data can recalibrate the final layer of a pretrained KWS model, with computation and storage requirements that are compatible with MCU deployment. The study uses public datasets, the code is available, and the first experiment includes 25-seed averaging and nonparametric significance tests. However, the central adaptation experiment, which carries the headline claims, currently lacks a support-set provenance guarantee, error bars, and control conditions; because the manuscript itself does not specify which split supplies the adaptation utterances, the headline improvements are not yet fully supported.

major comments (5)
  1. [Section III.C / IV.B] The manuscript never states which split of Google Speech Commands v2 provides the single contaminated utterance per class used for adaptation. If the one-shot support utterances, or the underlying clean utterances and noise clips used to construct them, overlap with the test set or with the specific noise clips used for evaluation, fine-tuning the final layer for one epoch could memorize the exact test items and inflate the reported 4.9-46.0% improvements. This is directly load-bearing for the central claim. Please state the provenance explicitly, verify disjointness from the evaluation set, and repeat the adaptation over multiple random draws of the support set to demonstrate that the result is not an artifact of a particular choice.
  2. [Section IV.A] The noise-aware-model variant is selected on the test set: Fig. 3 reports accuracy on the noisy test sets for variants trained with 20-100% additional noisy data, and the text uses these results to select the 100% variant as the optimal noise-aware-model for subsequent adaptation. This selection uses the same test data on which the adapted models are later evaluated, introducing optimistic bias in the comparison. Model selection should be performed on the validation split, or the selection criterion should be acknowledged as a limitation and shown not to change the conclusions.
  3. [Section IV.B / Fig. 5] Adaptation results are reported without error bars or statistical tests. The first experiment is averaged over 25 initializations and tested with Wilcoxon/Friedman procedures, but Section IV.B reports a single evaluation of one 1-shot, 1-epoch adaptation per condition. With only one support utterance per class, the outcome can depend on which utterance and noise clip are sampled. Please repeat the adaptation over multiple support draws and report the mean, variance, and significance, at least for the headline -3 dB and 24 dB conditions.
  4. [Section IV.B] There is no control for adaptation on clean samples or on a mismatched noise source. The observed gains could result from any last-layer recalibration to the target labels, such as adjusting output priors or scale, rather than from learning the target noise condition. Adding control conditions, such as adapting with clean utterances or with a different urban noise source, would isolate the noise-specific contribution and substantiate the statement that the pretrained models 'effectively adapt to new conditions'.
  5. [Abstract / Section IV.B] The claimed improvement range of 4.9% to 46.0% is not defined. It is unclear whether these are absolute percentage-point differences or relative improvements, and which SNR/noise conditions define the extremes. Because this is the headline quantitative result, please define the computation explicitly and specify the corresponding conditions.
minor comments (5)
  1. [Section III.C] The text says 'The GCS dataset' but should read 'The GSC dataset' for Google Speech Commands.
  2. [References] References [13] and [23] appear to describe the same AICAS 2024 paper by Cioflan et al.; these should be merged or clearly distinguished.
  3. [Section IV.B] The statement that curves for intermediate adaptation SNRs 'consistently fall within the range delineated by the -3 and 24 dB curves' is not supported by any figure or table; please provide evidence or soften the wording.
  4. [Fig. 5] The legend groups 'Before adaptation', '-3 dB', and '24 dB' under each model, which makes the curves difficult to distinguish, particularly in grayscale; consider using distinct markers or a separate legend.
  5. [Section IV.B] The sentence 'For large memory and computational devices, increasing the number of training samples and epochs may yield improvements in adaptation' is later qualified by results showing no clear improvement for some noise sources; please rephrase to match the presented evidence.

Circularity Check

0 steps flagged · score 0.0 of 10

No circularity found: the adaptation claim rests on external benchmarks and an empirical fine-tuning protocol, not on a self-referential definition or a self-citation chain.

full rationale

The paper's central claim—that one-shot, one-epoch fine-tuning of the last fully-connected layer improves keyword-spotting accuracy under on-site noise—is an empirical result evaluated against Google Speech Commands v2 and public noise corpora. The adaptation procedure in Section III.B freezes convolutional layers and updates only the final layer; nothing in that definition makes the test accuracy equal to the training objective by construction. The improvement is measured before and after adaptation on held-out evaluations, and Section IV.B explicitly tests adapted models across the full SNR range after adapting at -3 and 24 dB (Fig. 5), so the main claim is not a renamed fit. The selection of the 100% noise-aware variant by test-set accuracy (Section IV.A) and the unspecified provenance of the one-shot adaptation utterances are genuine experimental-design risks that could inflate results through leakage or selection bias, but they do not exhibit the required reduction of a prediction to its own input: the reported accuracies are not forced to equal the fitted values by the paper's equations. Similarly, evaluating at the same noise source and SNR used during adaptation (Fig. 6) is an in-distribution evaluation, not a tautology, because the test utterances are distinct from the adaptation samples unless leakage occurred, which is not stated. The paper contains no load-bearing self-citations: the architecture and preprocessing follow the external reference [4], and the authors do not invoke their own prior theorems or definitions to force the outcome. The acknowledged high-SNR limitation ('raising questions regarding the necessity of adaptation') is a caveat, not a circular step. Under the standard that circularity requires a quoted equation, a fitted parameter renamed as a prediction, or a self-citation chain that supplies the result, no circular step can be exhibited.

Assumptions & free parameters 3 free parameters · 5 assumptions · 0 invented entities

The central claim does not introduce new physical or mathematical quantities. It rests on standard dataset and interpolation assumptions plus three hand-selected operating points (learning rate 1e-4, one shot, one epoch) and an unstated labeled-sample availability assumption. No invented entities are proposed. The noise adaptation is a data-construction scenario, not a new model of the world.

free parameters (3)
  • Adaptation learning rate = 1e-4
    Fixed for SGD during one-shot adaptation; chosen by the authors, not swept, and the reported gains depend on it.
  • Number of shots and epochs = 1 shot, 1 epoch
    The central claim is that one-shot and one epoch suffice; this is a hand-selected operating point from a sweep of 1 to 5 shots and 1 to 5 epochs (Figure 6).
  • Adaptation SNR conditions = -3 dB and 24 dB (main curves)
    The headline comparisons adapt at the extremes of the SNR range; gains at intermediate SNR are inferred to lie between these curves, not always measured directly.
assumptions (5)
  • domain assumption Google Speech Commands v2 labels, the 80/10/10 split, and the keyword grouping into 12 classes are correct and representative.
    The evaluation and all reported accuracies rest on this dataset assumption; no external validation on other keyword-spotting data is provided.
  • domain assumption Additive contamination of clean utterances with noise at specified SNR values produces realistic noisy speech for adaptation and testing.
    The entire adaptation scenario is constructed this way; real-world noise is more dynamic and may include reverberation.
  • domain assumption Frozen convolutional features learned on clean plus colored and indoor noise transfer to on-site car horn, dog bark, and street music noises after updating only the final layer.
    This is the core design choice and is not derived or ablated; it is the hypothesis the experiment tests.
  • ad hoc to paper The one-shot adaptation utterance is available, correctly labeled, and captured in the target noise condition at a known SNR.
    The paper does not describe how the device obtains this labeled sample or knows the SNR; user intervention is only sketched in Figure 1.
  • ad hoc to paper Selecting the noise-aware model variant with highest test-set accuracy does not bias the subsequent adaptation comparison.
    The selection in Section IV.A uses the evaluation set, and no separate validation set is mentioned for this choice.

how reviews work

0 comments
Cite this review

Pith. "Pith review of Adaptive Noise Resilient Keyword Spotting Using One-Shot Learning." pith.science (2026). https://pith.science/paper/RPLCMF4M

@misc{pith2026250509304,
  author       = {Pith},
  title        = {Pith review of: Adaptive Noise Resilient Keyword Spotting Using One-Shot Learning},
  year         = {2026},
  howpublished = {\url{https://pith.science/paper/RPLCMF4M}},
  note         = {Machine review of arXiv:2505.09304}
}
abstract

Keyword spotting (KWS) is a key component of smart devices, enabling efficient and intuitive audio interaction. However, standard KWS systems deployed on embedded devices often suffer performance degradation under real-world operating conditions. Resilient KWS systems address this issue by enabling dynamic adaptation, with applications such as adding or replacing keywords, adjusting to specific users, and improving noise robustness. However, deploying resilient, standalone KWS systems with low latency on resource-constrained devices remains challenging due to limited memory and computational resources. This study proposes a low computational approach for continuous noise adaptation of pretrained neural networks used for KWS classification, requiring only 1-shot learning and one epoch. The proposed method was assessed using two pretrained models and three real-world noise sources at signal-to-noise ratios (SNRs) ranging from 24 to -3 dB. The adapted models consistently outperformed the pretrained models across all scenarios, especially at SNR $\leq$ 18 dB, achieving accuracy improvements of 4.9% to 46.0%. These results highlight the efficacy of the proposed methodology while being lightweight enough for deployment on resource-constrained devices.

Figures

Figures reproduced from arXiv: 2505.09304 by the authors.

Figure 1
Figure 1. Block diagram of a standalone KWS. these challenges, the individual modules of a standalone KWS system should be carefully designed and optimized. The general structure of a typical KWS system is depicted in [PITH_FULL_IMAGE:figures/full_fig_p001_1.png] view at source ↗
Figure 2
Figure 2. Proposed model architecture. Each convolution layer shows the number [PITH_FULL_IMAGE:figures/full_fig_p003_2.png] view at source ↗
Figure 4
Figure 4. compares the noise robustness of the baseline￾model and the selected noise-aware-model for specific colored and indoor noise sources at varying SNRs. As expected, lower SNRs lead to reduced performance for both models, regardless of the noise source. Notably, the noise-aware-model consistently outperforms the baseline-model across all cases, with the most significant improvements observed for colored noise sources. … view at source ↗
Figures from the paper (2 more)
Figure 5
Figure 5. Figure 5: Tested models in specific noise sources before and after training with 1-shot for 1 epoch. [PITH_FULL_IMAGE:figures/full_fig_p005_5.png]
Figure 6
Figure 6. Figure 6: Accuracy of the pretrained baseline-model before and after continuous adaptation for 1 to 5 epochs for different on-site noise conditions. Adaptation is performed using 1- or 5-shot per epoch. trained for 1 to 5 epochs with 1- or 5-shot learning utilizing utterances co…

Discussion (0). Continue with ORCID to comment.

Reference graph

Works this paper leans on

28 extracted references · 24 canonical work pages

  1. [1]

    Deep spoken keyword spotting: An overview,

    I. L ´opez-Espejo, Z.-H. Tan, J. H. L. Hansen, and J. Jensen, “Deep spoken keyword spotting: An overview,” IEEE Access, vol. 10, pp. 4169–4199, 2022

  2. [2]

    V oice activated iot devices for healthcare: Design challenges and emerging applications,

    P. Spachos, S. Gregori, and M. J. Deen, “V oice activated iot devices for healthcare: Design challenges and emerging applications,” IEEE Transactions on Circuits and Systems II: Express Briefs , vol. 69, no. 7, pp. 3101–3107, 2022

  3. [3]

    Exploring tinyml frameworks for small-footprint keyword spotting: A concise overview,

    S. Garai and S. Samui, “Exploring tinyml frameworks for small-footprint keyword spotting: A concise overview,” in 2024 International Confer- ence on Signal Processing and Communications (SPCOM) , 2024, pp. 1–5

  4. [4]

    Sub-mw keyword spotting on an mcu: Analog binary feature extraction and binary neural networks,

    G. Cerutti, L. Cavigelli, R. Andri, M. Magno, E. Farella, and L. Benini, “Sub-mw keyword spotting on an mcu: Analog binary feature extraction and binary neural networks,” IEEE Transactions on Circuits and Systems I: Regular Papers, vol. 69, no. 5, pp. 2002–2012, 2022

  5. [5]

    Ultra-low power keyword spotting at the edge,

    M. G. Ulkar and O. E. Okman, “Ultra-low power keyword spotting at the edge,” arXiv:2111.04988, 2021

  6. [6]

    Automatic gain control and multi-style training for robust small- footprint keyword spotting with deep neural networks,

    R. Prabhavalkar, R. Alvarez, C. Parada, P. Nakkiran, and T. N. Sainath, “Automatic gain control and multi-style training for robust small- footprint keyword spotting with deep neural networks,” in 2015 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), 2015, pp. 4704–4708

  7. [7]

    Query-by-example keyword spotting using long short-term memory networks,

    G. Chen, C. Parada, and T. N. Sainath, “Query-by-example keyword spotting using long short-term memory networks,” in 2015 IEEE Interna- tional Conference on Acoustics, Speech and Signal Processing (ICASSP), 2015, pp. 5236–5240

  8. [8]

    Sector-based interference cancellation for robust keyword spotting applications using an informed mpdr beamformer,

    G. Milano, O. Thiergart, and E. A. P. Habets, “Sector-based interference cancellation for robust keyword spotting applications using an informed mpdr beamformer,” in2024 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP) , 2024, pp. 651–655

Show all 28 references
  1. [9]

    A 510-nw wake-up keyword-spotting chip using serial-fft-based mfcc and binarized depthwise separable cnn in 28-nm cmos,

    W. Shan, M. Yang, T. Wang, Y . Lu, H. Cai, L. Zhu, J. Xu, C. Wu, L. Shi, and J. Yang, “A 510-nw wake-up keyword-spotting chip using serial-fft-based mfcc and binarized depthwise separable cnn in 28-nm cmos,” IEEE Journal of Solid-State Circuits , vol. 56, no. 1, pp. 151– 164, 2021

  2. [10]

    Evaluating robustness to noise and compression of deep neural networks for keyword spotting,

    P. H. Pereira, W. Beccaro, and M. A. Ram ´ırez, “Evaluating robustness to noise and compression of deep neural networks for keyword spotting,” IEEE Access, vol. 11, pp. 53 224–53 236, 2023

  3. [11]

    Online continual learning in keyword spotting for low-resource devices via pooling high-order temporal statistics,

    U. Michieli, P. Peso Parada, and M. Ozay, “Online continual learning in keyword spotting for low-resource devices via pooling high-order temporal statistics,” in Interspeech, 2023, pp. 1628–1632

  4. [12]

    Boosting keyword spotting through on-device learnable user speech characteristics,

    C. Cioflan, L. Cavigelli, and L. Benini, “Boosting keyword spotting through on-device learnable user speech characteristics,” arXiv:2403.07802, 2024

  5. [13]

    On- device domain learning for keyword spotting on low-power extreme edge embedded systems,

    C. Cioflan, L. Cavigelli, M. Rusci, M. de Prado, and L. Benini, “On- device domain learning for keyword spotting on low-power extreme edge embedded systems,” in 2024 IEEE 6th International Conference on AI Circuits and Systems (AICAS) , 2024, pp. 6–10

  6. [14]

    Towards on-device domain adaptation for noise-robust keyword spotting,

    C. Cioflan, L. Cavigelli, M. Rusci, M. De Prado, and L. Benini, “Towards on-device domain adaptation for noise-robust keyword spotting,” in 2022 IEEE 4th International Conference on Artificial Intelligence Circuits and Systems (AICAS), 2022, pp. 82–85

  7. [15]

    Hello edge: Keyword spotting on microcontrollers,

    Y . Zhang, N. Suda, L. Lai, and V . Chandra, “Hello edge: Keyword spotting on microcontrollers,” arXiv:1711.07128, 2017

  8. [16]

    A depthwise separable convo- lutional neural network for keyword spotting on an embedded system,

    P. M. Sørensen, B. Epp, and T. May, “A depthwise separable convo- lutional neural network for keyword spotting on an embedded system,” Journal on Audio, Speech, and Music Processing, vol. 2020, no. 1, p. 10, 2020

  9. [17]

    An overview of noise- robust automatic speech recognition,

    J. Li, L. Deng, Y . Gong, and R. Haeb-Umbach, “An overview of noise- robust automatic speech recognition,” IEEE/ACM Transactions on Audio, Speech, and Language Processing , vol. 22, no. 4, pp. 745–777, 2014

  10. [18]

    Hotword cleaner: Dual-microphone adaptive noise cancellation with deferred filter co- efficients for robust keyword spotting,

    Y . A. Huang, T. Z. Shabestary, and A. Gruenstein, “Hotword cleaner: Dual-microphone adaptive noise cancellation with deferred filter co- efficients for robust keyword spotting,” in 2019 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), 2019, p...

  11. [19]

    Supervised noise reduction for multichannel keyword spotting,

    Y . Huang, T. Hughes, T. Z. Shabestary, and T. Applebaum, “Supervised noise reduction for multichannel keyword spotting,” in 2018 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), 2018, pp. 5474–5478

  12. [20]

    Multi-task network for noise- robust keyword spotting and speaker verification using ctc-based soft vad and global query attention,

    M. Jung, Y . Jung, J. Goo, and H. Kim, “Multi-task network for noise- robust keyword spotting and speaker verification using ctc-based soft vad and global query attention,” Interspeech, 2020

  13. [21]

    Noisy student- teacher training for robust keyword spotting,

    H.-J. Park, P. Zhu, I. L. Moreno, and N. Subrahmanya, “Noisy student- teacher training for robust keyword spotting,” arXiv:2106.01604, 2021

  14. [22]

    Domain aware training for far-field small-footprint keyword spotting,

    H. Wu, Y . Jia, Y . Nie, and M. Li, “Domain aware training for far-field small-footprint keyword spotting,” Interspeech, 2020

  15. [23]

    On- device domain learning for keyword spotting on low-power extreme edge embedded systems,

    C. Cioflan, L. Cavigelli, M. Rusci, M. de Prado, and L. Benini, “On- device domain learning for keyword spotting on low-power extreme edge embedded systems,” in 2024 IEEE International Conference on Artificial Intelligence Circuits and Systems , april 2024

  16. [24]

    Speech commands: A dataset for limited-vocabulary speech recognition,

    P. Warden, “Speech commands: A dataset for limited-vocabulary speech recognition,” arXiv:1804.03209, 2018

  17. [25]

    Assessment for automatic speech recogni- tion: II. NOISEX-92: A database and an experiment to study the effect of additive noise on speech recognition systems,

    A. Varga and H. J. Steeneken, “Assessment for automatic speech recogni- tion: II. NOISEX-92: A database and an experiment to study the effect of additive noise on speech recognition systems,” Speech Communication, vol. 12, no. 3, pp. 247–251, 1993

  18. [26]

    The diverse environments multi- channel acoustic noise database (demand): A database of multichannel environmental noise recordings,

    J. Thiemann, N. Ito, and E. Vincent, “The diverse environments multi- channel acoustic noise database (demand): A database of multichannel environmental noise recordings,” Proceedings of Meetings on Acoustics , vol. 19, no. 1, p. 035081, may 2013

  19. [27]

    A dataset and taxonomy for urban sound research,

    J. Salamon, C. Jacoby, and J. P. Bello, “A dataset and taxonomy for urban sound research,” in 22nd ACM International Conference on Multimedia (ACM-MM’14), Orlando, FL, USA, nov 2014, pp. 1041–1044

  20. [28]

    Individual comparisons by ranking methods,

    F. Wilcoxon, “Individual comparisons by ranking methods,” Biometrics Bulletin, vol. 1, no. 6, pp. 80–83, Dec. 1945

Pith tools

Reviewed August 15, 2026 · model on record in the stance chip above.