/// <summary>Build wideband submodes.</summary> /// <remarks>Build wideband submodes.</remarks> /// <returns>the wideband submodes.</returns> protected static org.xiph.speex.SubMode[] buildWbSubModes() { org.xiph.speex.HighLspQuant highLU = new org.xiph.speex.HighLspQuant(); org.xiph.speex.SplitShapeSearch ssCbHighLbrSearch = new org.xiph.speex.SplitShapeSearch (40, 10, 4, hexc_10_32_table, 5, 0); org.xiph.speex.SplitShapeSearch ssCbHighSearch = new org.xiph.speex.SplitShapeSearch (40, 8, 5, hexc_table, 7, 1); org.xiph.speex.SubMode[] wbSubModes = new org.xiph.speex.SubMode[SB_SUBMODES]; wbSubModes[1] = new org.xiph.speex.SubMode(0, 0, 1, 0, highLU, null, null, .75f, .75f, -1, 36); wbSubModes[2] = new org.xiph.speex.SubMode(0, 0, 1, 0, highLU, null, ssCbHighLbrSearch , .85f, .6f, -1, 112); wbSubModes[3] = new org.xiph.speex.SubMode(0, 0, 1, 0, highLU, null, ssCbHighSearch , .75f, .7f, -1, 192); wbSubModes[4] = new org.xiph.speex.SubMode(0, 0, 1, 1, highLU, null, ssCbHighSearch , .75f, .75f, -1, 352); return wbSubModes; }
// disabled by default /// <summary>Build narrowband submodes</summary> private static org.xiph.speex.SubMode[] buildNbSubModes() { org.xiph.speex.Ltp3Tap ltpNb = new org.xiph.speex.Ltp3Tap(gain_cdbk_nb, 7, 7); org.xiph.speex.Ltp3Tap ltpVlbr = new org.xiph.speex.Ltp3Tap(gain_cdbk_lbr, 5, 0); org.xiph.speex.Ltp3Tap ltpLbr = new org.xiph.speex.Ltp3Tap(gain_cdbk_lbr, 5, 7); org.xiph.speex.Ltp3Tap ltpMed = new org.xiph.speex.Ltp3Tap(gain_cdbk_lbr, 5, 7); org.xiph.speex.LtpForcedPitch ltpFP = new org.xiph.speex.LtpForcedPitch(); org.xiph.speex.NoiseSearch noiseSearch = new org.xiph.speex.NoiseSearch(); org.xiph.speex.SplitShapeSearch ssNbVlbrSearch = new org.xiph.speex.SplitShapeSearch (40, 10, 4, exc_10_16_table, 4, 0); org.xiph.speex.SplitShapeSearch ssNbLbrSearch = new org.xiph.speex.SplitShapeSearch (40, 10, 4, exc_10_32_table, 5, 0); org.xiph.speex.SplitShapeSearch ssNbSearch = new org.xiph.speex.SplitShapeSearch( 40, 5, 8, exc_5_64_table, 6, 0); org.xiph.speex.SplitShapeSearch ssNbMedSearch = new org.xiph.speex.SplitShapeSearch (40, 8, 5, exc_8_128_table, 7, 0); org.xiph.speex.SplitShapeSearch ssSbSearch = new org.xiph.speex.SplitShapeSearch( 40, 5, 8, exc_5_256_table, 8, 0); org.xiph.speex.SplitShapeSearch ssNbUlbrSearch = new org.xiph.speex.SplitShapeSearch (40, 20, 2, exc_20_32_table, 5, 0); org.xiph.speex.NbLspQuant nbLspQuant = new org.xiph.speex.NbLspQuant(); org.xiph.speex.LbrLspQuant lbrLspQuant = new org.xiph.speex.LbrLspQuant(); org.xiph.speex.SubMode[] nbSubModes = new org.xiph.speex.SubMode[NB_SUBMODES]; nbSubModes[1] = new org.xiph.speex.SubMode(0, 1, 0, 0, lbrLspQuant, ltpFP, noiseSearch , .7f, .7f, -1, 43); nbSubModes[2] = new org.xiph.speex.SubMode(0, 0, 0, 0, lbrLspQuant, ltpVlbr, ssNbVlbrSearch , 0.7f, 0.5f, .55f, 119); nbSubModes[3] = new org.xiph.speex.SubMode(-1, 0, 1, 0, lbrLspQuant, ltpLbr, ssNbLbrSearch , 0.7f, 0.55f, .45f, 160); nbSubModes[4] = new org.xiph.speex.SubMode(-1, 0, 1, 0, lbrLspQuant, ltpMed, ssNbMedSearch , 0.7f, 0.63f, .35f, 220); nbSubModes[5] = new org.xiph.speex.SubMode(-1, 0, 3, 0, nbLspQuant, ltpNb, ssNbSearch , 0.7f, 0.65f, .25f, 300); nbSubModes[6] = new org.xiph.speex.SubMode(-1, 0, 3, 0, nbLspQuant, ltpNb, ssSbSearch , 0.68f, 0.65f, .1f, 364); nbSubModes[7] = new org.xiph.speex.SubMode(-1, 0, 3, 1, nbLspQuant, ltpNb, ssNbSearch , 0.65f, 0.65f, -1, 492); nbSubModes[8] = new org.xiph.speex.SubMode(0, 1, 0, 0, lbrLspQuant, ltpFP, ssNbUlbrSearch , .7f, .5f, .65f, 79); return nbSubModes; }
/// <summary>Build ultra-wideband submodes.</summary> /// <remarks>Build ultra-wideband submodes.</remarks> /// <returns>the ultra-wideband submodes.</returns> protected static org.xiph.speex.SubMode[] buildUwbSubModes() { org.xiph.speex.HighLspQuant highLU = new org.xiph.speex.HighLspQuant(); org.xiph.speex.SubMode[] uwbSubModes = new org.xiph.speex.SubMode[SB_SUBMODES]; uwbSubModes[1] = new org.xiph.speex.SubMode(0, 0, 1, 0, highLU, null, null, .75f, .75f, -1, 2); return uwbSubModes; }