昨日の移動中にモックを仕上げた。が、ワンツーの末尾のほぼ無音になっているところでアサートして落ちていた。 原因を見たら係数が非常に小さくなっているところの整数量子化で、右シフト量が大きくなりすぎていた(26とか。16bit深度を超えてる)。 普通にLPCで計算すると発生せず(むしろ、LPCではゼロに設定していたが)、学習によって小さいながらも非ゼロの係数が得られていた。 その小さい係数に対して律儀に右シフト量を計算してしまっていた。係数がビット表現精度未満の場合は0に丸め込むようにした。
ひとまずモックまではできた感じ。ソース全体を見て、削れるところを削った上で、CMakeプロジェクトを作っていきたい。 今日はソースを見て使っていない関数を削る。ついでにCMakeの骨格も作ってしまおう。 コーデック名は LInear-predictive Neural Net Encoder, LINNE とする。