開発ノート

10 分でオフにされない速度警告のつくり方

3 km/h のヒステリシス、30/20/12 秒のクールダウン、そして大切な例外がひとつ。超過がひどくなったときは、すぐに音声でお知らせします。

オフにされてしまう速度警告アプリは、何もしていないのと同じです。これは仕上げの問題ではなく、設計そのものの課題です。

オフにされてしまう 3 つの理由

  • ノイズでちらつく。制限 60 km/h の道路でぴったり 60 km/h を保っていても、GPS が数 km/h 揺れるたびに警告がオンとオフを繰り返します。
  • 繰り返しが多すぎる。長い区間で、同じ言葉が 5 秒ごとに読み上げられます。
  • 音楽にかぶせて話し、元に戻さない。途中で止まった音楽が戻らなければ、それだけでアンインストールの理由になります。

3 km/h のヒステリシス

警告はあるしきい値で始まり、そこから 3 km/h 下回ったところで解除されます。そのため境界付近で速度が揺れても、警告が何度も切り替わることはありません。警告状態から抜けるには、実際に減速する必要があります。

段階別のクールダウン

一度警告すると、同じ段階の警告は超過の程度に応じて 30 秒、20 秒、12 秒のあいだ控えます。超過が大きいほど危険も大きいため、より頻繁にお知らせします。

いちばん大切な例外

違反が悪化したとき、つまり少しの超過から大幅な超過に変わったときは、クールダウンを無視してすぐに警告します。ドライバーが加速しているまさにその瞬間こそ、警告がもっとも役に立つ瞬間だからです。機械的なクールダウンでは、話すべきときにかぎって黙ってしまいます。

+5 km/h の安全マージン

初期設定では、制限速度に 5 km/h を足した値を超えるまで違反とはみなしません。GPS には数 km/h の誤差があり、しかも多くの制限速度は推定値です。マージンがゼロだと、測定誤差がそのまま音声になってしまいます。この値は設定で変更できます。

端末にベトナム語の音声がない場合

vi-VN の TTS エンジンを搭載していないヘッドユニットは少なくありません。音声だけに頼るアプリは、まさにそうした端末で、まさに警告がもっとも必要な瞬間に黙ってしまいます。VoiceAlerts は音声が使えるかどうかを確認し、使えない場合はビープ音に切り替えます。また、一時的なダッキングのオーディオフォーカスを要求するため、音楽は途切れることなく音量が一時的に下がり、そのあと元に戻ります。