* Calculate frame energy for voiced/unvoiced detection * Can calculate from original or emphasized signal
(frame: Float32Array, isOriginal: boolean)
| 326 | * Can calculate from original or emphasized signal |
| 327 | */ |
| 328 | private calculateFrameEnergy(frame: Float32Array, isOriginal: boolean): number { |
| 329 | let sumSquares = 0; |
| 330 | for (let i = 0; i < frame.length; i++) { |
| 331 | sumSquares += frame[i] * frame[i]; |
| 332 | } |
| 333 | |
| 334 | if (isOriginal) { |
| 335 | return Math.sqrt(sumSquares * ORIGINAL_ENERGY_SCALE); |
| 336 | } else { |
| 337 | return Math.sqrt(sumSquares / EMPHASIZED_ENERGY_DIVISOR); |
| 338 | } |
| 339 | } |
| 340 | |
| 341 | /** |
| 342 | * Process audio samples into LPC frames |