全作品の刺さり具合スコアがゼロに?解析ツールのバグと修正の記録
ある日、サイト上の全ASMR作品で「刺さり具合」のスコアが0になるトラブルが起きました。この記事では、プログラムのバグ原因と修正の裏側をお話しします。不自然に揃った異常値は、データではなく処理を疑うべきだという大事な教訓を得ました。
突然すべてのスコアが「0」になった日
ASMRの音を数値化するにあたって、私たちのサイトではいくつかの指標を計算しています。その中に、音の「刺さり具合」を表すシャープネスという項目があります。高音のチクチクした感じを示す数値で、音響指標の読み方でも解説している通り、作品の聴き心地を判断する上でとても大切なデータです。
ところがある時、ふと確認すると、登録されているすべての作品でこのシャープネスの値が一律で「0」になってしまっていました。ASMRの音において、すべての作品で刺さり具合が完全にゼロになるというのは、現実的にはあり得ないことです。
原因は解析ツールの扱い間違い
調べてみたところ、原因は音を分析するための「mosqito」というライブラリ(便利なプログラムの部品のようなものです)の使い方にありました。
このライブラリの中にシャープネスを計算してくれる機能があるのですが、そこから計算結果を受け取る(値を取り出す)部分の書き方を私が間違えていたのです。結果として、正しい数値ではなく、空っぽの状態やエラーの代わりとして「0」がサイト上に表示されてしまっていました。
複雑な音のデータを扱っていると、つい「特殊な音だからこういう数値が出たのかな?」と考えてしまいがちです。しかし、今回のようにすべての作品がぴったり「0」というキリの良い数値になってしまった場合は、音そのもののデータではなく、それを処理するプログラム側に問題があるのだと痛感しました。
高音質なデータを使った再解析
バグを修正したあと、もう一度すべての作品を正しく解析し直す作業を行いました。
このとき、できるだけ正確な数値を出すために、元の音源の中でも「WAV(ウェーブ)」と呼ばれる、音の劣化がない高品質なデータ形式を優先して使いました。ファイルサイズが大きい作品については、WAV形式で解析して得られた精度の高い数値を、同じ作品の他のファイル形式のデータにも反映させることで、サイト全体の情報の整合性を整えました。
現在は正しいスコアが表示されるようになっていますので、安心して就寝用に安全なASMRランキングなどを活用していただければと思います。
この日の学び
- プログラムで計算した値がすべて同じ「キリの良い異常値」になった時は、データのせいではなく処理のバグを疑う
- 解析ツールの戻り値など、値を取り出す部分の基本的な扱いを間違えていないか確認する
- 再解析の際は、WAVなど可能な限り高音質な元の音源を優先して使用することで全体の精度を高められる