Age | Commit message (Collapse) | Author |
|
|
|
Fixes a "regression" from 1.2 to 1.3-beta that was especially noticeable
on a Korean speech sample. (it wasn't a real regression since 1.2 only
worked because it was using CELT)
|
|
|
|
That corresponds to the fundamental for the shortest pitch period allowed
|
|
|
|
Change-Id: I3db285875b6b5548decc436be00096b97be1be3c
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
Modified by Jean-Marc Valin
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
|
|
|
|
Ensure matrix is properly exported from
projection encoder.
Change-Id: I5ede77e4f4d0dc82074e2230780777af542a416e
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
Larger network, using 8-bit weights
|
|
OpusProjection* classes
MixingMatrix class
Projection tests
Change-Id: I98644466abf4ffd36e48bdecad1204d69e1539b9
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
The masking term was previously completely broken (even in 1.1). The
bandwidth detection relies mostly on the noise floor and can only use
masking to cut one extra band. The 12-24 kHz energy is now normalized properly
but uses a higher noise floor due to the leakage in the resampler. Bandwidth
detection is still mostly useless at identifying SWB speech (it usually says
FB).
|
|
|
|
Based on two dense layers with a GRU layer in the middle
|
|
SILK was being allocated too few bits for stereo hybrid, often resulting
in forced narrowing of the width. We now allocate more bits to SILK
and reduce the threshold for narrowing. This improves quality enough that
the bitrate threshold for switching to SILK can be increased to 44 kb/s.
|
|
Signed-off-by: Ralph Giles <giles@thaumas.net>
|
|
Signed-off-by: Felicia Lim <flim@google.com>
|
|
The new detector for SWB vs FB is unreliable due to the hack
that was required to get 24 kHz analysis working. We're now err
on the side of FB just to make sure.
|
|
|
|
|
|
Should call celt_inner_prod().
This change is bit exact as original, except for x86 floating-point.
In x86 floating-point, it calls celt_inner_prod_sse() which may have
different output with the change of floating-point operations' orders.
Change-Id: Ia2381e2e198a84296ac28305183f15be842b3454
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
|
|
|
|
This was sometimes causing the music probability to be stuck at
zero at the beginning of files
|
|
|
|
|
|
We boost bands that either cause leakage or are filled with leakage
|
|
Now scaling the energy to the same value is would be in floating-point
|
|
This makes it possible to run the testvectors with asan enabled.
|
|
The constant was copied from the analysis code which uses +/-1 as float
scaling, but surround_analysis() uses +/-32767.
|
|
The optimization is bit exact with C function.
Change-Id: Ifb8f04b19f2d576e79ce5dcfa7e0fc374d71d6c8
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
Split to silk_biquad_alt_stride1() and silk_biquad_alt_stride2(),
so that it can be optimized more efficiently when stride is 2.
This change in C code is bit exact with the origin.
Change-Id: Idaefe670397016ace2a489e3435ac61b7dbe79d5
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
|
|
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
- celt/modes.c:430:14: warning: cast from 'const unsigned char *' to
'opus_int16 *' increases required alignment from 1 to 2 [-Wcast-align]
- 'C[0][1]' may be used uninitialized [-Wmaybe-uninitialized]
- Unused variable/parameter
- Value stored is never read
- MSVC warnings about "possible loss of data" due to type conversions
- MSVC warning C4146: unary minus operator applied to unsigned type
- silk/NLSF_del_dec_quant.c:137:20: warning: array subscript is above
array bounds [-Warray-bounds] (gcc -O3 false positive)
- src/mlp_train.h:39:20: warning: function declaration isn't a prototype
[-Wstrict-prototypes]
- Remove SMALL_FOOTPRINT code from SSE 4.1 FIR implementation, matching
the C implementation.
The clang -Wcast-align warnings with SSE intrinsics are a known
clang issue: https://llvm.org/bugs/show_bug.cgi?id=20670
|
|
|
|
|
|
The change also makes the analysis run for sampling rates of 16 kHz and 24 kHz
since the features are only computed on the 0-8 kHz band. The longer time
window (20 ms instead of 10 ms) makes the tonality estimator more reliable
for low-pitch harmonics.
|
|
|
|
Thanks to Zhendong Wu for spotting the issue
|
|
Also remove the SILK_DEBUG_STORE_CLOSE_FILES flush call from
opus_demo.
This is debugging code which is no longer used, but defining
the symbols for SILK_DEBUG_STORE_CLOSE_FILES and calling it
from opus_demo causes linking problems on Microsoft Visual Studio
where we have strict controls on public symbols and want to
test the compiled DLL.
Since the code isn't in active use, it's better to remove it
to avoid clutter and address the linking issue.
|
|
frame_size_select() ensures that frame_size is a valid size or -1,
!st->variable_duration is always false, and delay_compensation is
no longer needed to choose the frame size.
|
|
|
|
That experiment never actually worked
|
|
Fix Hybrid redundancy assertion failure in ec_enc_shrink(), even
if SILK produces more than maxBits, by reducing or eliminating
redundancy when necessary. Don't reserve space for redundancy that
is too small to be used for redundancy. When there is not enough
space for redundancy, allow the regular frame to use all the bits.
|
|
With packets of 80 ms or more, a SILK bandwidth switch was missing
the second half of the redundancy, because st->silk_bw_switch was
cleared too early before any recursive calls.
|
|
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|
|
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
|