# A Dual-Channel End-to-End Speech Enhancement Method Using Complex Operations in the Time Domain
## 2 Algorithm Description
### CFCN Architecture  
The second part of CNABCFCN consists of a complex fully convolutional neural network, which is illustrated in Figure 3. As defined above, the output of the CNAB is denoted by \(y^{a}(k)[t]\in\mathbb{C}^{N\times 1}\), where \(\mathbb{C}\) is the set of complex numbers, \(k\in\{0,1,\ldots,M-1\}\) is the index of each frame, and \(M\) is the total number of indices. At this point, \(y^{a}(k)[t]\) is no longer a dual-channel feature but a single-channel complex feature, and it is passed through a 1D convolutional layer. The formulation of the 1D convolution is given by  
\[D_{r}(k)=f_{dconv}(Re(y^{a}(k))),\]  
\[D_{i}(k)=f_{dconv}(Im(y^{a}(k))), \tag{13}\]  
where \(f_{dconv}\) denotes the feature mapping function of 1D Conv, and \(D_{r}(k)\in\mathbb{R}^{P\times 1}\) and \(D_{i}(k)\in\mathbb{R}^{P\times 1}\) denote the real and imaginary outputs of 1D Conv, respectively.  
To facilitate the CFCN network in learning the characteristics of time-domain data, the real and imaginary outputs \((D_{r},D_{i})\in\mathbb{R}^{S\times 2}\) must be normalized as follows:  
\[(N_{r},N_{i})=f_{norm}((D_{r},D_{i})), \tag{14}\]  
where \(f_{norm}\) is the feature mapping function of the layernorm, BatchNorm [21] is used as the layernorm, and \((N_{r},N_{i})\in\mathbb{R}^{S\times 2}\) are the normalized feature mappings.  
The CFCN network uses a complex \(1\times 1\) convolutional layer to perform complex convolutions on \(N_{r}\) and \(N_{i}\), as follows:  
\[\begin{split} C_{out}=&(conv_{r}(N_{r})-conv_{i}(N_ {i}))\\ &+j(conv_{r}(N_{i})+conv_{i}(N_{r})).\end{split} \tag{15}\]  
Figure 3: CFCN structure.  
Equation (15) shows that the complex \(1\times 1\) convolutional layer is constructed from two one-dimensional convolutional layers, \(conv_{r}\) and \(conv_{i}\), representing the feature mapping functions for the RI parts, respectively. The final output of the complex \(1\times 1\) convolutional layer is \(C_{out}\in\mathbb{C}^{T\times 1}\).  
Following the complex convolutional layer, the CNABCFCN network uses 1D dilated convolutional blocks [22]. To maximize the utilization of the temporal context window of the speech signal, the dilation factors of the 1D convolutional blocks in each layer are exponentially increased. The proposed CNABCFCN system repeats \(X\) convolutional blocks with dilation factors \(1,2,4,\ldots,2^{X-1}\)\(R\) times. Although we attempted to replace all 1D dilated convolutional blocks with complex convolutional blocks, this approach did not improve the performance of the CNABCFCN model and instead consumed significant computational memory. The experimental section of the paper describes the effect of the number of complex convolutional layers on the system's performance. In the final designed CNABCFCN network, the final 1D convolutional blocks are replaced with a complex convolutional block, which is highlighted in different colors in Figure 3. The network employs the parametric rectified linear unit (PReLU) as its nonlinear activation function, defined by  
\[PReLU(x)=\begin{cases}x,&x>=0\\ ax,&x<0,\end{cases} \tag{16}\]  
where \(a\in\mathbb{R}\) is a trainable scalar used to control the negative slope of the rectifier. After the complex \(1\times 1\) convolutional layer, the network adds a sigmoid activation function. The output of the sigmoid function is then multiplied by beamforming feature mapping, resulting in the final enhanced speech signal.