---
title: 'GTCRN: Lightweight Speech Enhancement'
url: https://www.emergentmind.com/topics/grouped-temporal-convolutional-recurrent-network-gtcrn
type: topic
---

# GTCRN: Lightweight Speech Enhancement

The Grouped Temporal Convolutional Recurrent Network (GTCRN) is a lightweight neural architecture designed for efficient speech enhancement, especially under low signal-to-noise ratio (SNR) conditions. It integrates frequency-domain redundancy reduction, grouped temporal convolutions, and a grouped dual-path recurrent module, achieving robust speech extraction while maintaining low parameter and computational cost. The dual-channel variant enhances performance by leveraging independent vector analysis (IVA) as a coarse estimator, injecting auxiliary information from IVA outputs directly into the network. This system has demonstrated efficacy for dual-microphone setups deployed on resource-constrained devices [2505.19597].

## 1. Input Representation and Feature Extraction

GTCRN processes complex-valued short-time Fourier transforms (STFTs) of noisy signals, denoted $Y\in\mathbb{C}^{C\times T\times F}$ (where $C$ is the number of channels, $T$ frames, $F$ frequency bins). Initially, GTCRN applies an Equivalent Rectangular Bandwidth (ERB) filter bank as a "band merging" (BM) step, mapping the $F$ frequency bins into $B$ bands. Typically, low-frequency bands are left unmerged (e.g., 65), with higher frequencies merged into fewer bands (e.g., 64 ERB bands). This step yields $Y_B\in\mathbb{C}^{C\times T\times B}$.

A subsequent Subband Feature Extraction (SFE) module applies a $1\times3$ convolution to each band, aggregating information from neighboring bands. The output is reshaped, stacking all $B$ bands (and $K$ generated features per band) along the channel dimension, resulting in a tensor $X_0\in\mathbb{R}^{C_0\times T\times 1}$ where $C_0=C\cdot B\cdot K$.

## 2. GTCRN Core Architecture

The GTCRN encoder consists of two cascaded blocks, each comprising:

- A 2D point-wise convolution (P-Conv2D) followed by batch normalization and PReLU activation.
- A second 2D convolution with kernel size $(1,5)$ and stride $(1,2)$, again followed by normalization and activation.
- Three Grouped Temporal Convolution (GT-Conv) sub-blocks per encoder block.

**GT-Conv Block**:
1. The input channels are split into two equal groups.
2. **Branch A** passes through identically.
3. **Branch B** processes the input via:
    - Two serial $1\times1$ point-wise convolutions, each followed by batch normalization and PReLU.
    - A 2D depth-wise dilated convolution (kernel $3\times3$, dilation $d$).
4. Branch outputs are concatenated and channels are shuffled to enable inter-branch information exchange.
5. The decoder mirrors the encoder, using transpose convolutions and a final $\tanh$ activation to constrain the output to $(-1,1)$.

After encoding, features are processed by a Grouped Dual-Path RNN (G-DPRNN):

- The encoded tensor is rearranged such that the frequency axis becomes “segments” and time becomes “frames.”
- $C_e$ channels are split into $G$ disjoint groups.
- Within each group $g$:
    - **Intra-frame (frequency-wise):** $H_i^{(g)}(t) = \text{BiGRU}_g(F_g(t))$ for $t=1\dots T'$.
    - **Inter-frame (time-wise):** $H_o^{(g)}(f) = \text{UniGRU}_g(H_i^{(g)}(:,f))$ for $f=1\dots F'$.
- Outputs from all groups are concatenated and projected back to $C_e$ channels.

## 3. Dual-Channel Extensions and IVA Integration

The dual-channel GTCRN (DC-GTCRN) is designed to exploit two microphone channels and IVA-derived auxiliary features for improved speech enhancement under challenging acoustic conditions.

**Input Feature Stacking**:

- The system receives $Y\in\mathbb{C}^{2\times T\times F}$, representing stereo or dual-microphone recordings.
- An auxiliary IVA module (Aux-IVA) produces two separated spectrograms $S(k,l)$ (speech) and $N(k,l)$ (noise), each in $\mathbb{C}^{2\times T\times F}$.
- IVA features considered include the real and imaginary parts of these spectrograms, as well as the log-power spectrum ($\log|S|^2$).
- The real and imaginary parts of $Y$ are concatenated with chosen IVA features along the channel axis to form the input tensor $X_{\rm in}\in\mathbb{R}^{C_{\rm in}\times T\times F}$.

**Dual-Encoder Option**:

- Optionally, a dual-encoder architecture processes original $Y$ features and auxiliary IVA features in parallel. Their encoded outputs are concatenated before input to the G-DPRNN module.

**Masking Strategies**:

- The decoder outputs two real-valued masks $M_r(t,f)$, $M_i(t,f)$.
- These masks can be applied in two ways:
    - **Masking 1:** $\hat{S}(k,l) = [M_r + j\,M_i]\cdot S_{\text{iva}}(k,l)$.
    - **Masking 2:** $\hat{S}(k,l) = [M_r + j\,M_i]\cdot Y(k,l)$.
- Empirically, Masking 2, which multiplies the mask with the original noisy STFT, yields superior performance in low-SNR conditions.

## 4. Mathematical Formulation and Training Criteria

Given $Y\in\mathbb{C}^{2\times T\times F}$, its real and imaginary parts are stacked as $Y=[Y_r;Y_i]\in\mathbb{R}^{4\times T\times F}$. If the LPS of the IVA speech output is used, $X_{\text{iva}}(t,f) = \log|S_{\text{iva}}(t,f)|^2\in\mathbb{R}^{1\times T\times F}$. Feature stacking results in $X_{\rm in}(t,f)= [Y_r(t,f),\,Y_i(t,f),\,X_{\rm iva}(t,f)]^T\in\mathbb{R}^{C_{\rm in}}$.

Following BM and SFE, the tensor has shape $X_0\in\mathbb{R}^{C_0\times T\times 1}$ where $C_0=B\cdot K\cdot C_{\rm in}$.

The training loss is a weighted hybrid of time-domain and spectrogram-domain objectives:

\[
\mathcal{L} = \alpha\,\mathcal{L}_\text{SISNR}(\hat{x},x) + (1-\beta)\,\mathcal{L}_\text{mag}\left(|\hat{X}|^{0.3}, |X|^{0.3}\right) + \beta\left[\mathcal{L}_\text{real}\left(\frac{\hat{X}_r}{|\hat{X}|^{0.7}},\frac{X_r}{|X|^{0.7}}\right) + \mathcal{L}_\text{imag}\left(\frac{\hat{X}_i}{|\hat{X}|^{0.7}},\frac{X_i}{|X|^{0.7}}\right)\right]
\]
where $\alpha=0.01$, $\beta=0.3$, and the loss terms are explicitly defined in [2505.19597]. The total loss incorporates scale-invariant signal-to-noise ratio (SISNR), compressed magnitude loss, and normalized real/imaginary loss.

## 5. Computational Complexity and Parameterization

GTCRN emphasizes efficiency through architectural grouping:

- **2D convolutional layers:** Standard cost is $2\cdot C_{\rm in}\cdot C_{\rm out}\cdot K_t\cdot K_f\cdot T'\cdot F'$ multiply-accumulate operations (MACs). With $G$ groups, cost is reduced by $1/G$.
- **GRU layers:** For input dimension $D_{\rm in}$ and hidden size $D_h$, one GRU cell requires about $2\cdot(3\cdot(D_{\rm in}+D_h)\cdot D_h)$ operations per time step. Grouping into $G$ parallel GRUs reduces per-group input and hidden size to $D_{\rm in}/G$, $D_h/G$.

Measured parameter counts and complexity:

| Variant                  | Parameters   | Complexity (MMAC/s) |
|--------------------------|-------------|---------------------|
| Single-channel GTCRN     | ≈23.4 k     | ≈32                 |
| Dual-channel GTCRN       | ≈23.9 k     | ≈35.6               |
| Hybrid (with IVA)        | 24.39 k     | ≈43.2               |

The Aux-IVA module adds negligible parameters and just ≈0.2 MMAC/s per iteration [2505.19597].

## 6. IVA Auxiliary Estimation and Feature Fusion

Aux-IVA employs a classic independent vector analysis approach to obtain demixing vectors $w_1(k), w_2(k)\in\mathbb{C}^2$, estimating both speech and noise spectrograms $S(k), N(k)$. Update rules involve:

1. Computing $r_m = \sqrt{\sum_{k=1}^F |w^H_m(k)Y(k)|^2}$.
2. Calculating $V_m(k)=\mathbb{E}\left[\frac{G'(r_m)}{r_m}Y(k)Y(k)^H\right]$.
3. Updating $w_m(k)$ by inverting $W(k)V_m(k)$ and normalizing.
4. Generating $S(k)=w^H_1(k)Y(k), N(k)=w^H_2(k)Y(k)$.

Feature fusion is conducted by concatenating either $\text{Re}(S), \text{Im}(S)$ and optionally $\text{Re}(N), \text{Im}(N)$, or the log-power spectrum $\log|S|^2$ with the original $\text{Re}(Y), \text{Im}(Y)$ across channels before feeding to the encoding stage.

## 7. Practical Configuration and Training Protocols

GTCRN and its variants are trained with the following hyperparameters:

- STFT: 512-point Hanning window, 256-sample hop.
- Band merging: 65 low bands + 64 ERB bands.
- SFE: Convolution kernel $(1,3)$.
- Encoder block: Output channels $=16$ (single encoder) or $12$ (dual encoder), kernel $(1,5)$, stride $(1,2)$. Second layer uses group size $2$.
- GT-Conv: Channel count $16$, kernel $(3,3)$, dilations $\{1,2,5\}$.
- G-DPRNN: $2$ groups, intra-frame BiGRU, inter-frame UniGRU, hidden units adjusted to keep total parameters $\approx 24$ k.
- Optimizer: Adam, linear warm-up (25k steps), cosine annealing (up to 250k steps), learning rates from $10^{-6}$ to $10^{-3}$. Batch size $8$, 1250 steps/epoch.
- SNRs: Trained on $[-10,0]$ dB, tested at $-12.5$ dB, $-7.5$ dB, $-2.5$ dB [2505.19597].

## 8. Summary of Contributions and Significance

GTCRN delivers high-performance speech enhancement within strict computational budgets, achieving parameter counts in the tens of thousands and sustaining real-time efficiency. The introduction of dual-channel contextual features and IVA-based auxiliary information results in robust performance even in extremely low-SNR conditions. Empirical results demonstrate that mask application to the original noisy STFT (Masking 2) provides superior enhancement in adverse environments. The hybrid system's lightweight design, modular architecture, and effectiveness for dual-microphone arrays position GTCRN as an efficient solution for embedded and resource-limited audio applications [2505.19597].

Source: https://www.emergentmind.com/topics/grouped-temporal-convolutional-recurrent-network-gtcrn