From ba1c314ab26651bf99518f465c55652252bc556a Mon Sep 17 00:00:00 2001 From: Jim Tittsler Date: Wed, 13 Dec 2023 11:10:13 +0900 Subject: [PATCH 1/6] Fix typos --- doc/codec2.tex | 70 +++++++++++++++++++++++++------------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/doc/codec2.tex b/doc/codec2.tex index 27181a22..4bbffeee 100644 --- a/doc/codec2.tex +++ b/doc/codec2.tex @@ -89,10 +89,10 @@ Recently, machine learning has been applied to speech coding. This technology p \subsection{Speech in Time and Frequency} -To explain how Codec 2 works, lets look at some speech. Figure \ref{fig:hts2a_time} shows a short 40ms segment of speech in the time and frequency domain. On the time plot we can see the waveform is changing slowly over time as the word is articulated. On the right hand side it also appears to repeat itself - one cycle looks very similar to the last. This cycle time is the ``pitch period", which for this example is around $P=35$ samples. Given we are sampling at $F_s=8000$ Hz, the pitch period is $P/F_s=35/8000=0.0044$ seconds, or 4.4ms. +To explain how Codec 2 works, let's look at some speech. Figure \ref{fig:hts2a_time} shows a short 40ms segment of speech in the time and frequency domain. On the time plot we can see the waveform is changing slowly over time as the word is articulated. On the right hand side it also appears to repeat itself - one cycle looks very similar to the last. This cycle time is the ``pitch period", which for this example is around $P=35$ samples. Given we are sampling at $F_s=8000$ Hz, the pitch period is $P/F_s=35/8000=0.0044$ seconds, or 4.4ms. \begin{figure} [H] -\caption{ A 40ms segment from the word ``these" from a female speaker, sampled at 8kHz. Top is a plot against time, bottom (blue) is a plot of the same speech against frequency. The waveform repeats itself every 4.3ms ($F_0=230$ Hz), this is the ``pitch period" of this segment. The red crosses are the sine wave amplitudes, explained in the text.} +\caption{ A 40ms segment from the word ``these" from a female speaker, sampled at 8kHz. Top is a plot against time, bottom (blue) is a plot of the same speech against frequency. The waveform repeats itself every 4.3ms ($F_0=230$ Hz); this is the ``pitch period" of this segment. The red crosses are the sine wave amplitudes, explained in the text.} \label{fig:hts2a_time} \begin{center} \input hts2a_37_sn.tex @@ -103,14 +103,14 @@ To explain how Codec 2 works, lets look at some speech. Figure \ref{fig:hts2a_ti Now if the pitch period is 4.4ms, the pitch frequency or \emph{fundamental} frequency $F_0$ is about $1/0.0044 \approx 230$ Hz. If we look at the blue frequency domain plot at the bottom of Figure \ref{fig:hts2a_time}, we can see spikes that repeat every 230 Hz. If the signal is repeating itself in the time domain, it also repeats itself in the frequency domain. Those spikes separated by about 230 Hz are harmonics of the fundamental frequency $F_0$. -Note that each harmonic has it's own amplitude, that varies across frequency. The red line plots the amplitude of each harmonic. In this example there is a peak around 500 Hz, and another, broader peak around 2300 Hz. The ear perceives speech by the location of these peaks and troughs. +Note that each harmonic has its own amplitude, that varies across frequency. The red line plots the amplitude of each harmonic. In this example, there is a peak around 500 Hz and another broader peak around 2300 Hz. The ear perceives speech by the location of these peaks and troughs. \subsection{Sinusoidal Speech Coding} -A sinewave will cause a spike or spectral line on a spectrum plot, so we can see each spike as a small sine wave generator. Each sine wave generator has it's own frequency that are all multiples of the fundamental pitch frequency (e.g. $230, 460, 690,...$ Hz). They will also have their own amplitude and phase. If we add all the sine waves together (Figure \ref{fig:sinusoidal_model}) we can produce reasonable quality synthesised speech. This is called sinusoidal speech coding and is the speech production ``model" at the heart of Codec 2. +A sinewave will cause a spike or spectral line on a spectrum plot, so we can see each spike as a small sine wave generator. Each sine wave generator has its own frequency that are all multiples of the fundamental pitch frequency (e.g. $230, 460, 690,...$ Hz). They will also have their own amplitude and phase. If we add all the sine waves together (Figure \ref{fig:sinusoidal_model}) we can produce reasonable quality synthesised speech. This is called sinusoidal speech coding and is the speech production ``model" at the heart of Codec 2. \begin{figure}[h] -\caption{The sinusoidal speech model. If we sum a series of sine waves, we can generate a speech signal. Each sinewave has it's own amplitude ($A_1,A_2,... A_L$), frequency, and phase (not shown). We assume the frequencies are multiples of the fundamental frequency $F_0$. $L$ is the total number of sinewaves we can fit in 4 kHz.} +\caption{The sinusoidal speech model. If we sum a series of sine waves, we can generate a speech signal. Each sinewave has its own amplitude ($A_1,A_2,... A_L$), frequency, and phase (not shown). We assume the frequencies are multiples of the fundamental frequency $F_0$. $L$ is the total number of sinewaves we can fit in 4 kHz.} \label{fig:sinusoidal_model} \begin{center} \begin{tikzpicture}[>=triangle 45,x=1.0cm,y=1.0cm] @@ -136,21 +136,21 @@ A sinewave will cause a spike or spectral line on a spectrum plot, so we can see \end{center} \end{figure} -The model parameters evolve over time, but can generally be considered constant for a short time window (a few 10s of ms). For example pitch evolves over time, moving up or down as a word is articulated. +The model parameters evolve over time, but can generally be considered constant for a short time window (a few 10s of ms). For example, pitch evolves over time, moving up or down as a word is articulated. -As the model parameters change over time, we need to keep updating them. This is known as the \emph{frame rate} of the codec, which can be expressed in terms of frequency (Hz) or time (ms). For sampling model parameters Codec 2 uses a frame rate of 10ms. For transmission over the channel we reduce this to 20-40ms, in order to lower the bit rate. The trade off with a lower frame rate is reduced speech quality. +As the model parameters change over time, we need to keep updating them. This is known as the \emph{frame rate} of the codec, which can be expressed in terms of frequency (Hz) or time (ms). For sampling model parameters, Codec 2 uses a frame rate of 10ms. For transmission over the channel, we reduce this to 20-40ms in order to lower the bit rate. The trade off with a lower frame rate is reduced speech quality. The parameters of the sinusoidal model are: \begin{enumerate} \item The frequency of each sine wave. As they are all harmonics of $F_0$ we can just send $F_0$ to the decoder, and it can reconstruct the frequency of each harmonic as $F_0,2F_0,3F_0,...,LF_0$. We used 5-7 bits/frame to represent $F_0$ in Codec 2. \item The amplitude of each sine wave, $A_1,A_2,...,A_L$. These ``spectral amplitudes" are really important as they convey the information the ear needs to understand speech. Most of the bits are used for spectral amplitude information. Codec 2 uses between 18 and 50 bits/frame for spectral amplitude information. \item Voicing information. Speech can be approximated into voiced speech (vowels) and unvoiced speech (like consonants), or some mixture of the two. The example in Figure \ref{fig:hts2a_time} above is voiced speech. So we need some way to describe voicing to the decoder. This requires just a few bits/frame. -\item The phase of each sine wave. Codec 2 discards the phases of each harmonic at the encoder and reconstruct them at the decoder using an algorithm, so no bits are required for phases. This results in some drop in speech quality. +\item The phase of each sine wave. Codec 2 discards the phases of each harmonic at the encoder and reconstructs them at the decoder using an algorithm, so no bits are required for phases. This results in some drop in speech quality. \end{enumerate} \subsection{Codec 2 Encoder and Decoder} -This section explains how the Codec 2 encoder and decoder works using block diagrams. +This section explains how the Codec 2 encoder and decoder work using block diagrams. \begin{figure}[h] \caption{Codec 2 Encoder.} @@ -186,13 +186,13 @@ The encoder is presented in Figure \ref{fig:codec2_encoder}. Frames of input sp Yet another algorithm is used to determine if the frame is voiced or unvoiced. This works by comparing the spectrum to what we would expect for voiced speech (e.g. lots of spectral lines). If the energy is more random and continuous rather than discrete lines, we consider it unvoiced. -Up until this point the processing happens at a 10ms frame rate. However in the next step we ``decimate`` the model parameters - this means we discard some of the model parameters to lower the frame rate, which helps us lower the bit rate. Decimating to 20ms (throwing away every 2nd set of model parameters) doesn't have much effect, but beyond that the speech quality starts to degrade. So there is a trade off between decimation rate and bit rate over the channel. +Up until this point the processing happens at a 10ms frame rate. However, in the next step, we ``decimate`` the model parameters - this means we discard some of the model parameters to lower the frame rate, which helps us lower the bit rate. Decimating to 20ms (throwing away every 2nd set of model parameters) doesn't have much effect, but beyond that the speech quality starts to degrade. So there is a trade off between decimation rate and bit rate over the channel. -Once we have the desired frame rate, we ``quantise" each model parameter. This means we use a fixed number of bits to represent it, so we can send the bits over the channel. Parameters like pitch and voicing are fairly easy, but quite a bit of DSP goes into quantising the spectral amplitudes. For the higher bit rate Codec 2 modes, we design a filter that matches the spectral amplitudes, then send a quantised version of the filter over the channel. Using the example in Figure \ref{fig:hts2a_time} - the filter would have a band pass peaks at 500 and 2300 Hz. It's frequency response would follow the red line. The filter is time varying - we redesign it for every frame. +Once we have the desired frame rate, we ``quantise" each model parameter. This means we use a fixed number of bits to represent it, so we can send the bits over the channel. Parameters like pitch and voicing are fairly easy, but quite a bit of DSP goes into quantising the spectral amplitudes. For the higher bit rate Codec 2 modes, we design a filter that matches the spectral amplitudes, then send a quantised version of the filter over the channel. Using the example in Figure \ref{fig:hts2a_time} - the filter would have a band pass peaks at 500 and 2300 Hz. Its frequency response would follow the red line. The filter is time varying - we redesign it for every frame. You'll notice the term ``estimate" being used a lot. One of the problems with model based speech coding is the algorithms we use to extract the model parameters are not perfect. Occasionally the algorithms get it wrong. Look at the red crosses on the bottom plot of Figure \ref{fig:hts2a_time}. These mark the amplitude estimate of each harmonic. If you look carefully, you'll see that above 2000Hz, the crosses fall a little short of the exact centre of each harmonic. This is an example of a ``fine" pitch estimator error, a little off the correct value. -Often the errors interact, for example the fine pitch error shown above will mean the amplitude estimates are a little bit off as well. Fortunately these errors tend to be temporary, and are sometimes not even noticeable to the listener - remember this codec is often used for HF/VHF radio where channel noise is part of the normal experience. +Often the errors interact, for example the fine pitch error shown above will mean the amplitude estimates are a little bit off as well. Fortunately, these errors tend to be temporary and are sometimes not even noticeable to the listener - remember this codec is often used for HF/VHF radio where channel noise is part of the normal experience. \begin{figure}[h] \caption{Codec 2 Decoder} @@ -200,7 +200,7 @@ Often the errors interact, for example the fine pitch error shown above will mea \begin{center} \begin{tikzpicture}[auto, node distance=2cm,>=triangle 45,x=1.0cm,y=1.0cm,align=center,text width=2cm] -\node [input] (rinput) {}; +\node [input] (input) {}; \node [block, right of=rinput,node distance=2cm] (dequantise) {Dequantise Interpolate}; \node [block, right of=dequantise,node distance=3cm] (recover) {Recover Amplitudes}; \node [block, right of=recover,node distance=3cm] (synthesise) {Synthesise Speech}; @@ -218,19 +218,19 @@ Often the errors interact, for example the fine pitch error shown above will mea \end{center} \end{figure} -Figure \ref{fig:codec2_decoder} shows the operation of the Codec 2 decoder. We take the sequence of bits received from the channel and recover the quantised model parameters, pitch, spectral amplitudes, and voicing. We then resample the model parameters back up to the 10ms frame rate using a technique called interpolation. For example say we receive a $F_0=200$ Hz pitch value then 20ms later $F_0=220$ Hz. We can use the average $F_0=210$ Hz for the middle 10ms frame. +Figure \ref{fig:codec2_decoder} shows the operation of the Codec 2 decoder. We take the sequence of bits received from the channel and recover the quantised model parameters, pitch, spectral amplitudes, and voicing. We then resample the model parameters back up to the 10ms frame rate using a technique called interpolation. For example, say we receive a $F_0=200$ Hz pitch value, then 20ms later $F_0=220$ Hz. We can use the average $F_0=210$ Hz for the middle 10ms frame. The phases of each harmonic are generated using the other model parameters and some DSP. It turns out that if you know the amplitude spectrum, you can determine a ``reasonable" phase spectrum using some DSP operations, which in practice is implemented with a couple of FFTs. We also use the voicing information - for unvoiced speech we use random phases (a good way to synthesise noise-like signals) - and for voiced speech we make sure the phases are chosen so the synthesised speech transitions smoothly from one frame to the next. -Frames of speech are synthesised using an inverse FFT. We take a blank array of FFT samples, and at intervals of $F_0$ insert samples with the amplitude and phase of each harmonic. We then inverse FFT to create a frame of time domain samples. These frames of synthesised speech samples are carefully aligned with the previous frame to ensure smooth frame-frame transitions, and output to the listener. +Frames of speech are synthesised using an inverse FFT. We take a blank array of FFT samples, and at intervals of $F_0$ insert samples with the amplitude and phase of each harmonic. We then inverse FFT to create a frame of time domain samples. These frames of synthesised speech samples are carefully aligned with the previous frame to ensure smooth frame-frame transitions and output to the listener. \subsection{Bit Allocation} -Table \ref{tab:bit_allocation} presents the bit allocation for two popular Codec 2 modes. One additional parameter is the frame energy, this is the average level of the spectral amplitudes, or ``AF gain" of the speech frame. +Table \ref{tab:bit_allocation} presents the bit allocation for two popular Codec 2 modes. One additional parameter is the frame energy, which is the average level of the spectral amplitudes, or ``AF gain" of the speech frame. At very low bit rates such as 700 bits/s, we use Vector Quantisation (VQ) to represent the spectral amplitudes. We construct a table such that each row of the table has a set of spectral amplitude samples. In Codec 2 700C the table has 512 rows. During the quantisation process, we choose the table row that best matches the spectral amplitudes for this frame, then send the \emph{index} of the table row. The decoder has a similar table, so can use the index to look up the spectral amplitude values. If the table is 512 rows, we can use a 9 bit number to quantise the spectral amplitudes. In Codec 2 700C, we use two tables of 512 entries each (18 bits total), the second one helps fine tune the quantisation from the first table. -Vector Quantisation can only represent what is present in the tables, so if it sees anything unusual (for example a different microphone frequency response or background noise), the quantisation can become very rough and speech quality poor. We train the tables at design time using a database of speech samples and a training algorithm - an early form of machine learning. +Vector Quantisation can only represent what is present in the tables, so if it sees anything unusual (for example, a different microphone frequency response or background noise), the quantization can become very rough and speech quality poor. We train the tables at design time using a database of speech samples and a training algorithm - an early form of machine learning. Codec 2 3200 uses the method of fitting a filter to the spectral amplitudes, this approach tends to be more forgiving of small variations in the input speech spectrum, but is not as efficient in terms of bit rate. @@ -258,7 +258,7 @@ Bit rate & 3200 & 700 \\ \subsection{Overview} -Codec 2 is based on sinusoidal \cite{mcaulay1986speech} and Multi-Band Excitation (MBE) \cite{griffin1988multiband} vocoders that were first developed in the late 1980s. Descendants of the MBE vocoders (IMBE, AMBE etc) have enjoyed widespread use in many applications such as VHF/UHF hand held radios and satellite communications. In the 1990s the author studied sinusoidal speech coding \cite{rowe1997techniques}, which provided the skill set and a practical, patent free baseline for starting the Codec 2 project: +Codec 2 is based on sinusoidal \cite{mcaulay1986speech} and Multi-Band Excitation (MBE) \cite{griffin1988multiband} vocoders that were first developed in the late 1980s. Descendants of the MBE vocoders (IMBE, AMBE etc) have enjoyed widespread use in many applications such as VHF/UHF handheld radios and satellite communications. In the 1990s the author studied sinusoidal speech coding \cite{rowe1997techniques}, which provided the skill set and a practical, patent free baseline for starting the Codec 2 project: Some features of the Codec 2 Design: \begin{enumerate} @@ -280,7 +280,7 @@ Both voiced and unvoiced speech is represented using a harmonic sinusoidal model \end{equation} where the parameters $A_m, \theta_m, m=1...L$ represent the magnitude and phases of each sinusoid, $\omega_0$ is the fundamental frequency in radians/sample, and $L=\lfloor \pi/\omega_0 \rfloor$ is the number of harmonics. -Figure \ref{fig:analysis} illustrates the processing steps in the sinusoidal analysis system at the core of the Codec 2 encoder. This algorithms described in this section are based on the work in \cite{rowe1997techniques}, with some changes in notation. +Figure \ref{fig:analysis} illustrates the processing steps in the sinusoidal analysis system at the core of the Codec 2 encoder. The algorithms described in this section are based on the work in \cite{rowe1997techniques}, with some changes in notation. \begin{figure}[h] \caption{Sinusoidal Analysis} @@ -345,7 +345,7 @@ r &= \frac{\omega_0 N_{dft}}{2 \pi} \end{equation} The DFT indexes $a_m, b_m$ select the band of $S_w(k)$ containing the $m$-th harmonic; $r$ maps the harmonic number $m$ to the nearest DFT index, and $\lfloor x \rceil$ is the rounding operator. This method of estimating $A_m$ is relatively insensitive to small errors in $F0$ estimation and works equally well for voiced and unvoiced speech. Figure $\ref{fig:hts2a_time}$ plots $S_w$ (blue) and $\{A_m\}$ (red) for a sample frame of female speech. -The phase is sampled at the centre of the band. For all practical Codec 2 modes the phase is not transmitted to the decoder so does not need to be computed. However speech synthesised using the phase is useful as a control during development, and is available using the \emph{c2sim} utility. +The phase is sampled at the centre of the band. For all practical Codec 2 modes, the phase is not transmitted to the decoder, so it does not need to be computed. However, speech synthesized using the phase is useful as a control during development and is available using the \emph{c2sim} utility. \subsection{Sinusoidal Synthesis} @@ -548,7 +548,7 @@ Where $n_0$ is a time shift that represents the pulse position relative to the c \begin{equation} \phi_m = - m \omega_0 n_0 \end{equation} -As we don't transmit any phase information the pulse position $n_0$ is unknown at the decoder. Fortunately the ear is insensitive to the absolute position of pitch pulses in voiced speech, as long as they evolve smoothly over time (discontinuities in phase are a characteristic of unvoiced speech). +As we don't transmit any phase information the pulse position $n_0$ is unknown at the decoder. Fortunately, the ear is insensitive to the absolute position of pitch pulses in voiced speech, as long as they evolve smoothly over time (discontinuities in phase are a characteristic of unvoiced speech). The excitation pulses occur at a rate of $\omega_0$ (one for each pitch period). The phase of the first harmonic advances by $N \phi_1$ radians over a synthesis frame of $N$ samples. For example if $\omega_1 = \pi /20$ (200 Hz), then over a (10ms $N=80$) sample frame, the phase of the first harmonic would advance $(\pi/20)80 = 4 \pi$ radians or two complete cycles. We therefore derive $n_0$ from the excitation phase of the fundamental, which we treat as a timing reference. Each frame we advance the phase of the fundamental: \begin{equation} @@ -563,7 +563,7 @@ n_0 &= -\phi_1 / \omega_0 \\ \end{split} \end{equation} -For unvoiced speech $E(z)$ is a white noise signal. At each frame we sample a random number generator on the interval $-\pi ... \pi$ to obtain the excitation phase of each harmonic. We set $F_0 = 50$ Hz to use a large number of harmonics $L=4000/50=80$ for synthesis to best approximate a noise signal. +For unvoiced speech $E(z)$ is a white noise signal. At each frame, we sample a random number generator on the interval $-\pi ... \pi$ to obtain the excitation phase of each harmonic. We set $F_0 = 50$ Hz to use a large number of harmonics $L=4000/50=80$ for synthesis to best approximate a noise signal. The second phase component is provided by sampling the phase of $H(z)$ at the harmonic centres. The phase spectra of $H(z)$ is derived from the magnitude response using minimum phase techniques. The method for deriving the phase spectra of $H(z)$ differs between Codec 2 modes and is described below in Sections \ref{sect:mode_lpc_lsp} and \ref{sect:mode_newamp1}. This component of the phase tends to disperse the pitch pulse energy in time, especially around spectral peaks (formants). @@ -577,7 +577,7 @@ Comparing to speech synthesised using original phases $\{\theta_m\}$ the followi \item If there are voicing errors, the speech can sound clicky or staticy. If voiced speech is mistakenly declared unvoiced, this model tends to synthesise annoying impulses or clicks, as for voiced speech $H(z)$ is relatively flat (broad, high frequency formants), so there is very little dispersion of the excitation impulses through $H(z)$. \item When combined with amplitude modelling or quantisation, such that $H(z)$ is derived from $\{\hat{A}_m\}$ there is an additional drop in quality. \item This synthesis model (e.g. a pulse train exciting a LPC filter) is effectively the same as a simple LPC-10 vocoders, and yet (especially when $arg[H(z)]$ is derived from unquantised $\{A_m\}$) sounds much better. Conventional wisdom (AMBE, MELP) says mixed voicing is required for high quality speech. -\item If $H(z)$ is changing rapidly between frames, it's phase contribution may also change rapidly. This approach could cause some discontinuities in the phase at the edge of synthesis frames, as no attempt is made to make sure that the phase tracks are continuous (the excitation phases are continuous, but not the final phases after filtering by $H(z)$). +\item If $H(z)$ is changing rapidly between frames, its phase contribution may also change rapidly. This approach could cause some discontinuities in the phase at the edge of synthesis frames, as no attempt is made to make sure that the phase tracks are continuous (the excitation phases are continuous, but not the final phases after filtering by $H(z)$). \item The recent crop of neural vocoders produce high quality speech using a similar parameters set, and notably without transmitting phase information. Although many of these vocoders operate in the time domain, this approach can be interpreted as implementing a function $\{ \hat{\theta}_m\} = F(\omega_0, \{Am\},v)$. This validates the general approach used here, and as future work Codec 2 may benefit from being augmented by machine learning. \end{enumerate} @@ -594,7 +594,7 @@ In this and the next section we explain how the codec building blocks above are \end{center} \end{figure} -The source-filter model of speech production was introduced above in Equation (\ref{eq:source_filter}). A spectrally flat excitation source $E(z)$ excites a filter $H(z)$ which models the magnitude spectrum of the speech. In Linear Predictive Coding (LPC), we define $H(z)$ as an all pole filter: +The source-filter model of speech production was introduced above in Equation (\ref{eq:source_filter}). A spectrally flat excitation source $E(z)$ excites a filter $H(z)$ which models the magnitude spectrum of the speech. In Linear Predictive Coding (LPC), we define $H(z)$ as an all-pole filter: \begin{equation} H(z) = \frac{G}{1-\sum_{k=1}^p a_k z^{-k}} = \frac{G}{A(z)} \end{equation} @@ -613,7 +613,7 @@ A(z) = \frac{P(z)+Q(z)}{2} \end{equation} Thus to transmit the LPC coefficients using LSPs, we first transform the LPC model $A(z)$ to $P(z)$ and $Q(z)$ polynomial form. We then solve $P(z)$ and $Q(z)$ for $z=e^{j \omega}$ to obtain $p$ LSP frequencies $\{\omega_i\}$. The LSP frequencies are then quantised and transmitted over the channel. At the receiver the quantised LSPs are then used to reconstruct an approximation of $A(z)$. More details on LSP analysis can be found in \cite{rowe1997techniques} and many other sources. -Figure \ref{fig:encoder_lpc_lsp} presents the LPC/LSP mode encoder. Overlapping input speech frames are processed every 10ms ($N=80$ samples). LPC analysis determines a set of $p=10$ LPC coefficients $\{a_k\}$ that describe the spectral envelope of the current frame and the LPC energy $E=G^2$. The LPC coefficients are transformed to $p=10$ LSP frequencies $\{\omega_i\}$. The source code for these algorithms is in \emph{lpc.c} and \emph{lsp.c}. The LSP frequencies are then quantised to a fixed number of bits/frame. Other parameters include the pitch $\omega_0$, LPC energy $E$, and voicing $v$. The quantisation and bit packing source code for each Codec 2 mode can be found in \emph{codec2.c}. Note the spectral magnitudes $\{A_m\}$ are not transmitted, but are still computed for use in voicing estimation (\ref{eq:voicing_snr}). +Figure \ref{fig:encoder_lpc_lsp} presents the LPC/LSP mode encoder. Overlapping input speech frames are processed every 10ms ($N=80$ samples). LPC analysis determines a set of $p=10$ LPC coefficients $\{a_k\}$ that describe the spectral envelope of the current frame and the LPC energy $E=G^2$. The LPC coefficients are transformed to $p=10$ LSP frequencies $\{\omega_i\}$. The source code for these algorithms is in \emph{lpc.c} and \emph{lsp.c}. The LSP frequencies are then quantised to a fixed number of bits/frame. Other parameters include the pitch $\omega_0$, LPC energy $E$, and voicing $v$. The quantisation and bit packing source code for each Codec 2 mode can be found in \emph{codec2.c}. Note the spectral magnitudes $\{A_m\}$ are not transmitted but are still computed for use in voicing estimation (\ref{eq:voicing_snr}). \begin{figure}[h] \caption{LPC/LSP Modes Encoder} @@ -653,7 +653,7 @@ Figure \ref{fig:encoder_lpc_lsp} presents the LPC/LSP mode encoder. Overlapping \end{center} \end{figure} -One of the problems with quantising spectral magnitudes in sinusoidal codecs is the time varying number of harmonic magnitudes, as $L=\pi/\omega_0$, and $\omega_0$ varies from frame to frame. As we require a fixed bit rate for our uses cases, it is desirable to have a fixed number of parameters. Using a fixed order LPC model is a neat solution to this problem. Another feature of LPC modelling combined with scalar LSP quantisation is some tolerance to variations in the input frequency response, e.g. due to microphone or anti-alias filter shape factors (see section \ref{sect:mode_newamp1} for more information on this issue). +One of the problems with quantising spectral magnitudes in sinusoidal codecs is the time varying number of harmonic magnitudes, as $L=\pi/\omega_0$, and $\omega_0$ varies from frame to frame. As we require a fixed bit rate for our use cases, it is desirable to have a fixed number of parameters. Using a fixed order LPC model is a neat solution to this problem. Another feature of LPC modelling combined with scalar LSP quantisation is some tolerance to variations in the input frequency response, e.g. due to microphone or anti-alias filter shape factors (see section \ref{sect:mode_newamp1} for more information on this issue). Some disadvantages \cite{makhoul1975linear} are the LPC spectrum $|H(e^{j \omega})|$ doesn't follow the spectral magnitudes $A_m$ exactly, in other words is requires a non-flat excitation spectrum to accurately model the amplitude spectrum. The slope of the LPC spectrum near 0 and $\pi$ must be 0, which means it does not track perceptually important low frequency information well. For high pitched speakers, LPC tends to place poles around single harmonics, rather than tracking the spectral envelope described by $\{Am\}$. All of these problems can be observed in Figure \ref{fig:hts2a_lpc_lsp}. Thus exciting the LPC model by a simple, spectrally flat $E(z)$ will result in some errors in the reconstructed magnitude speech spectrum. @@ -710,7 +710,7 @@ arg \left[ H(e^{j \omega_0 m}) \right] = arg \left[ \hat{H}(\lfloor m r \rceil) \end{center} \end{figure} -Prior to sampling the amplitude and phase, a frequency domain post filter is applied to the LPC power spectrum. The algorithm is based on the MBE frequency domain post filter \cite[Section 8.6, p 267]{kondoz1994digital}, which is turn based on the frequency domain post filter from McAulay and Quatieri \cite[Section 4.3, p 148]{kleijn1995speech}. The authors report a significant improvement in speech quality from the post filter, which has also been our experience when applied to Codec 2. The post filter is given by: +Prior to sampling the amplitude and phase, a frequency domain post filter is applied to the LPC power spectrum. The algorithm is based on the MBE frequency domain post filter \cite[Section 8.6, p 267]{kondoz1994digital}, which is in turn based on the frequency domain post filter from McAulay and Quatieri \cite[Section 4.3, p 148]{kleijn1995speech}. The authors report a significant improvement in speech quality from the post filter, which has also been our experience when applied to Codec 2. The post filter is given by: \begin{equation} \label{eq:lpc_lsp_pf} \begin{split} @@ -718,14 +718,14 @@ P_f(e^{j\omega}) &= g \left( R_w(e^{j \omega} \right))^\beta \\ R_w(^{j\omega}) &= A(e^{j \omega/ \gamma})/A(e^{j \omega}) \end{split} \end{equation} -where $g$ is chosen to normalise the gain of the post filter, and $\beta=0.2$, $\gamma=0.5$ are experimentally derived constants. The post filter raises the spectral peaks (formants), and lowers the inter-formant energy. The $\gamma$ term compensates for spectral tilt, providing equal emphasis at low and high frequencies. The authors suggest the post filter reduces the noise level between formants, an explanation commonly given to post filters used for CELP codecs where significant inter-formant noise exists from the noisy excitation source. However in harmonic sinusoidal codecs there is no excitation noise between formants in $E(z)$. Our theory is the post filter also acts to reduce the bandwidth of spectral peaks, modifying the energy distribution across the time domain pitch cycle which improves speech quality, especially for low pitched speakers. +where $g$ is chosen to normalise the gain of the post filter, and $\beta=0.2$, $\gamma=0.5$ are experimentally derived constants. The post filter raises the spectral peaks (formants), and lowers the inter-formant energy. The $\gamma$ term compensates for spectral tilt, providing equal emphasis at low and high frequencies. The authors suggest the post filter reduces the noise level between formants, an explanation commonly given to post filters used for CELP codecs where significant inter-formant noise exists from the noisy excitation source. However, in harmonic sinusoidal codecs, there is no excitation noise between formants in $E(z)$. Our theory is the post filter also acts to reduce the bandwidth of spectral peaks, modifying the energy distribution across the time domain pitch cycle which improves speech quality, especially for low pitched speakers. A disadvantage of the post filter is the need for experimentally derived constants. It performs a non-linear operation on the speech spectrum, and if mis-applied can worsen speech quality. As it's operation is not completely understood, it represents a source of future quality improvement. \subsection{Codec 2 700C} \label{sect:mode_newamp1} -To efficiently transmit spectral amplitude information Codec 2 700C uses a set of algorithms collectively denoted \emph{newamp1}. One of these algorithms is the Rate K resampler which transforms the variable length vectors of spectral magnitude samples to fixed length $K$ vectors suitable for vector quantisation. Figure \ref{fig:encoder_newamp1} presents the Codec 2 700C encoder. +To efficiently transmit spectral amplitude information, Codec 2 700C uses a set of algorithms collectively denoted \emph{newamp1}. One of these algorithms is the Rate K resampler which transforms the variable length vectors of spectral magnitude samples to fixed length $K$ vectors suitable for vector quantisation. Figure \ref{fig:encoder_newamp1} presents the Codec 2 700C encoder. \begin{figure}[H] \caption{Codec 2 700C (newamp1) Encoder} @@ -851,7 +851,7 @@ k = warp^{-1}(f,K) = \frac{mel(f)-mel(200)}{g} + 1 \end{center} \end{figure} -The input speech may be subject to arbitrary filtering, for example due to the microphone frequency response, room acoustics, and anti-aliasing filter. This filtering is fixed or slowly time varying. The filtering biases the target vectors away from the VQ training material, resulting in significant additional mean square error. The filtering does not greatly affect the input speech quality, however the VQ performance distortion increases and the output speech quality is reduced. This is exacerbated by operating in the log domain, the VQ will try to match very low level, perceptually insignificant energy near 0 and 4000 Hz. A microphone equaliser algorithm has been developed to help adjust to arbitrary microphone filtering. +The input speech may be subject to arbitrary filtering, for example, due to the microphone frequency response, room acoustics, and anti-aliasing filter. This filtering is fixed or slowly time-varying. The filtering biases the target vectors away from the VQ training material, resulting in significant additional mean square error. The filtering does not greatly affect the input speech quality, however the VQ performance distortion increases and the output speech quality is reduced. This is exacerbated by operating in the log domain, the VQ will try to match very low level, perceptually insignificant energy near 0 and 4000 Hz. A microphone equaliser algorithm has been developed to help adjust to arbitrary microphone filtering. For every input frame $l$, the equaliser (EQ) updates the dimension $K$ equaliser vector $\mathbf{e}$: \begin{equation} @@ -882,7 +882,7 @@ where $\mathbf{p}$ is a post filter vector. The post filter vector is generated \end{equation} where $G$ is an energy normalisation term, and $1.2 < P_{gain} < 1.5$ describes the amount if post filtering applied. $G$ and $P_{gain}$ are similar to $g$ and $\beta$ in the LPC/LSP post filter (\ref{eq:lpc_lsp_pf}). The $\mathbf{r}$ term is a high pass (pre-emphasis) filter with +20 dB/decade gain after 300 Hz ($f_k$ is given in (\ref{eq:warp})). The post filtering is applied on the pre-emphasised vector, then the pre-emphasis is removed from the final result. Multiplying by $P_{gain}$ in the $log$ domain is similar to the $\alpha$ power function in (\ref{eq:lpc_lsp_pf}); spectral peaks are moved up, and troughs pushed down. This filter enhances the speech quality but also introduces some artefacts. -Figure \ref{fig:decoder_newamp1} is the block diagram of the decoder signal processing. Cepstral techniques are used to synthesise a phase spectra $arg[H(e^{j \omega}])$ from $\hat{\mathbf{a}}$ using a minimum phase model. +Figure \ref{fig:decoder_newamp1} is the block diagram of the decoder signal processing. Cepstral techniques are used to synthesise a phase spectra $arg[H(e^{j \omega}])$ from $\hat{\mathbf{a}}$ using a minimum phase model. \begin{figure}[h] \caption{Codec 2 700C (newamp1) Decoder} @@ -916,11 +916,11 @@ Figure \ref{fig:decoder_newamp1} is the block diagram of the decoder signal proc Some notes on the Codec 2 700C \emph{newamp1} algorithms: \begin{enumerate} -\item The amplitudes and Vector Quantiser (VQ) entries are in dB, which matches the ears logarithmic amplitude response. +\item The amplitudes and Vector Quantiser (VQ) entries are in dB, which matches the ear's logarithmic amplitude response. \item The mode is capable of communications quality speech and is in common use with FreeDV, but is close to the lower limits of intelligibility, and doesn't do well in some languages (problems have been reported with German and Japanese). \item The VQ was trained on just 120 seconds of data - way too short. \item The parameter set (pitch, voicing, log spectral magnitudes) is very similar to that used for the latest neural vocoders. -\item The Rate K algorithms were recently revisited, several improvements were proposed and prototyped \cite{rowe2023ratek}. +\item The Rate K algorithms were recently revisited, and several improvements were proposed and prototyped \cite{rowe2023ratek}. \end{enumerate} \section{Summary of Codec 2 Modes} @@ -945,14 +945,14 @@ Mode & Frm (ms) & Bits & $A_m$ & $E$ & $\omega_0$ & $v$ & Use Cases \\ \caption{Codec 2 Modes} \end{table} -The 3200 mode quantises the LSP differences $\omega_{i+1}-\omega_i$, which provides low distortion at the expense of robustness to bit errors, as an error in a low order LSP difference will propagate through the frame. The 2400 and 1200 bit/s modes use a joint delta $\omega_0$ and energy VQ, which is efficient but also also suffers from error propagation so is not suitable for high BER use cases. +The 3200 mode quantises the LSP differences $\omega_{i+1}-\omega_i$, which provides low distortion at the expense of robustness to bit errors, as an error in a low order LSP difference will propagate through the frame. The 2400 and 1200 bit/s modes use a joint delta $\omega_0$ and energy VQ, which is efficient but also suffers from error propagation so is not suitable for high BER use cases. There is an unfortunate overlap in the naming conventions of Codec 2 and FreeDV. The Codec 2 700C mode is used in the FreeDV 700C, 700D, and 700E modes. \section{Summary of Codec 2 Source Files} \label{sect:source_files} -Codec 2 is part of the \emph{codec2} repository, which also includes various modems and FreeDV API code. This sections lists the files specific to the speech codec. The \emph{cmake} system builds the \emph{libcodec2} library, which is called by user applications via the Codec 2 API in \emph{codec2.h}. See the repository \emph{README} for information on building, demo applications, and an introduction to other features of the \emph{codec2} repository. +Codec 2 is part of the \emph{codec2} repository, which also includes various modems and FreeDV API code. This section lists the files specific to the speech codec. The \emph{cmake} system builds the \emph{libcodec2} library, which is called by user applications via the Codec 2 API in \emph{codec2.h}. See the repository \emph{README} for information on building, demo applications, and an introduction to other features of the \emph{codec2} repository. \begin{table}[H] \label{tab:codec2_file} From d104a5019cbbb7e46f532ccc760f588bc5ef2ae7 Mon Sep 17 00:00:00 2001 From: Jim Tittsler Date: Thu, 14 Dec 2023 11:55:49 +0900 Subject: [PATCH 2/6] Revert s->z spelling changes --- doc/codec2.tex | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/codec2.tex b/doc/codec2.tex index 4bbffeee..310db85f 100644 --- a/doc/codec2.tex +++ b/doc/codec2.tex @@ -200,7 +200,7 @@ Often the errors interact, for example the fine pitch error shown above will mea \begin{center} \begin{tikzpicture}[auto, node distance=2cm,>=triangle 45,x=1.0cm,y=1.0cm,align=center,text width=2cm] -\node [input] (input) {}; +\node [input] (rinput) {}; \node [block, right of=rinput,node distance=2cm] (dequantise) {Dequantise Interpolate}; \node [block, right of=dequantise,node distance=3cm] (recover) {Recover Amplitudes}; \node [block, right of=recover,node distance=3cm] (synthesise) {Synthesise Speech}; @@ -230,7 +230,7 @@ Table \ref{tab:bit_allocation} presents the bit allocation for two popular Codec At very low bit rates such as 700 bits/s, we use Vector Quantisation (VQ) to represent the spectral amplitudes. We construct a table such that each row of the table has a set of spectral amplitude samples. In Codec 2 700C the table has 512 rows. During the quantisation process, we choose the table row that best matches the spectral amplitudes for this frame, then send the \emph{index} of the table row. The decoder has a similar table, so can use the index to look up the spectral amplitude values. If the table is 512 rows, we can use a 9 bit number to quantise the spectral amplitudes. In Codec 2 700C, we use two tables of 512 entries each (18 bits total), the second one helps fine tune the quantisation from the first table. -Vector Quantisation can only represent what is present in the tables, so if it sees anything unusual (for example, a different microphone frequency response or background noise), the quantization can become very rough and speech quality poor. We train the tables at design time using a database of speech samples and a training algorithm - an early form of machine learning. +Vector Quantisation can only represent what is present in the tables, so if it sees anything unusual (for example, a different microphone frequency response or background noise), the quantisation can become very rough and speech quality poor. We train the tables at design time using a database of speech samples and a training algorithm - an early form of machine learning. Codec 2 3200 uses the method of fitting a filter to the spectral amplitudes, this approach tends to be more forgiving of small variations in the input speech spectrum, but is not as efficient in terms of bit rate. @@ -345,7 +345,7 @@ r &= \frac{\omega_0 N_{dft}}{2 \pi} \end{equation} The DFT indexes $a_m, b_m$ select the band of $S_w(k)$ containing the $m$-th harmonic; $r$ maps the harmonic number $m$ to the nearest DFT index, and $\lfloor x \rceil$ is the rounding operator. This method of estimating $A_m$ is relatively insensitive to small errors in $F0$ estimation and works equally well for voiced and unvoiced speech. Figure $\ref{fig:hts2a_time}$ plots $S_w$ (blue) and $\{A_m\}$ (red) for a sample frame of female speech. -The phase is sampled at the centre of the band. For all practical Codec 2 modes, the phase is not transmitted to the decoder, so it does not need to be computed. However, speech synthesized using the phase is useful as a control during development and is available using the \emph{c2sim} utility. +The phase is sampled at the centre of the band. For all practical Codec 2 modes, the phase is not transmitted to the decoder, so it does not need to be computed. However, speech synthesised using the phase is useful as a control during development and is available using the \emph{c2sim} utility. \subsection{Sinusoidal Synthesis} From 217b4307e8590b16a0c95505b951e5bd1b01aa46 Mon Sep 17 00:00:00 2001 From: Mooneer Salem Date: Mon, 18 Dec 2023 12:56:04 -0800 Subject: [PATCH 3/6] Update codec2.pdf Regenerate codec2.pdf based on PR changes. --- doc/codec2.pdf | Bin 322353 -> 322873 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/codec2.pdf b/doc/codec2.pdf index ac2e63c694e646241796fa1ad8d06a19eb675946..5aa90b69d20ab94a7c221b85f8b97b620f87b61a 100644 GIT binary patch delta 77234 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

39b@IY_PX-N#PfjFjDfoV4am%yhCHv};4 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 delta 76711 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

M&()jyVM3MvA%7J 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%0D(skPCo^ot>Re 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 From 32fa99472aa8f26ba6f76cdbcea00d4730fb2b22 Mon Sep 17 00:00:00 2001 From: drowe67 <45574645+drowe67@users.noreply.github.com> Date: Fri, 16 Feb 2024 16:13:43 +1030 Subject: [PATCH 4/6] Update README.md Making recommendations for Windows clearer. --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 726152cc..4ae53f39 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,9 @@ Some key guidelines about the code in the `codec2` repo: ## Ports to non C99 Compilers -We have standardized on C99 and develop and test using gcc on a Linux platform. We encourage people who want to use non-standard compilers like MSVC and certain embedded compilers to maintain their own Codec 2 forks. Our focus needs to be on what’s unique about our project – the speech codec and modem waveforms – rather than consuming time and resources on non-core activities that others can do equally well. If you decide to fork Codec 2 to a non C99 compiler - please ensure you port the ctests and that they all pass. If the tests have not been ported or do not pass - it's not Codec 2. +For Windows applications (built with MSVC or any compiler) we recommend linking with our [cross-compiled](#building-for-windows) Codec 2 DLLs. This lets you enjoy the benefits of our carefully developed, tested and maintained codebase without having to develop and maintain your own fork. + +We have standardized on C99 and develop and test using gcc on a Linux platform. Our focus needs to be on what’s unique about our project – the speech codec and modem waveforms, and we lack the resources to support multiple compilers. If you want to build Codec 2 using a non-standard compiler like MSVC and certain embedded compilers you will need to maintain your own Codec 2 fork (a very large commitment). If you decide to fork Codec 2 to a non C99 compiler - please ensure you port the ctests and that they all pass. If the tests have not been ported or do not pass - it's not Codec 2. ## Quickstart @@ -203,7 +205,7 @@ wav - speech files in wave file format make ``` -## Bulding for Windows +## Building for Windows We develop and test on Linux to the [C99 standard](#ports-to-non-c99-compilers). We recommend using MinGW to cross compile for Windows. From 10df28afccddb6b17007d78ef494467b2c0f7a22 Mon Sep 17 00:00:00 2001 From: drowe67 <45574645+drowe67@users.noreply.github.com> Date: Fri, 15 Mar 2024 06:43:05 +1030 Subject: [PATCH 5/6] Update README.md Feature Request form link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4ae53f39..7af08646 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ The code supporting these modes won't be going away any time soon (and we will c We have a process for considering Feature Requests and Pull Requests that we will guide you through. -Feature Requests can be submitted via GitHub Issues. +If you have a Feature Request, please answer the questions in the [Feature Request Form](https://freedv.org/wp-content/uploads/sites/8/2024/03/FreeDV-027-Feature-Request-Form-V1.1.pdf), and submit your answers as a GitHub Issue. Before writing any code or submitting a PR - **please discuss** the PR with developers by raising a GitHub Issue. We have many years of experience and a carefully considered plan for Codec 2 development, and can guide you on work that will most benefit this project. From 8241e30b7ca8784cfac6450b5c84c5b8722c53d5 Mon Sep 17 00:00:00 2001 From: Lukas Ostendorf Date: Fri, 19 Apr 2024 18:25:23 +0200 Subject: [PATCH 6/6] pkg-config: Fix include dirs in codec2.pc --- codec2.pc.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/codec2.pc.in b/codec2.pc.in index ecca7049..1d0a565b 100644 --- a/codec2.pc.in +++ b/codec2.pc.in @@ -1,10 +1,10 @@ prefix=@CMAKE_INSTALL_PREFIX@ libdir=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@ -includedir=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_INCLUDEDIR@/codec2 +includedir=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_INCLUDEDIR@ Name: codec2 Description: A speech codec for 2400 bit/s and below Requires: Version: @CODEC2_VERSION@ Libs: -L${libdir} -lcodec2 -Cflags: -I${includedir} +Cflags: -I${includedir} -I${includedir}/codec2