防災放送をデジタル化してみた
約1ヶ月前に、屋久島に移住しました。屋久島の安房地方は、防災放送が結構回数が多くて、存在感があります( 詳しくは、放送についてのブログを書いたので興味あれば読んでください)。たまに、重要な情報も流れます。ただ、聞き逃しや聞き違いとかあるので、移住前からでも、サイト化できないかと思って考え始めた。
実際に移住してからちょっと時間ができましたが、こんなの作れました。
「エリアトーク」という、自治体の放送を自宅でも受信できる機械があったので、この音声の出力を Raspberry Pi に繋いでた USB 音声入力に繋いだ。そこから、 sox を使って一定音量以上になるとストリームを Amazon Transcribe に送りながら録音し、自動で更新する文字起こしサイトを作った。
https://bousai.yakushima.blog/
ソースコードは GitHub で公開 しています。かなり適当な作りになっているけど今後時間ある時に改善いきたいと思っています。
わかったこと・今後改善予定のこと
まずは自動文字起こし。私は AWS に一番慣れているのでデフォルトで Amazon Transcribe を選んだんですが、精度がかなり低い。カスタムの辞書(よく使われる言葉集的なもの)の機能はあるけど、かなり使いにくい。よく登録する時にエラーになったり、やっとうまく登録できた!と思ったら5分後確認したらモデル生成にエラーが発生しました、とかというのありました。
そのところで、違うプロバイダーを探し始めた。 Google と Azure も似たようなサービスがあり、 Amazon より10倍ぐらいの精度だった。正直びっくりしました。
Google も Azure も両方カスタム辞書を登録するのが楽でした。 Azure はカンマ区切りの、漢字の文字をそのまま列挙すればいい。Googleはいちいち登録する手間はあったけど、その代わりそれぞれの登録単語やフレーズに重みをつけることもできた(モデルによって使ったり使えなかったりするみたいだけど)。
結局は、Google にしようと思います。それが一番先に改善するところ。
他は、下記の改善を考えています
- 定時チャイムの取り除き (文字起こし文が無いのを隠せばいいだけなので比較的楽そうですね)
- デプロイフロー (今はサーバーとフロントを全部 Raspberry Pi にログインして git pull 的な感じでデプロイしています。。笑)
- UI (今は1時間ぐらいかけて作ったものだけど、もうちょっとかっこよくしたい)
- RSS (僕はニュースを基本的に NetNewsWire で読んでいるのでそれと連携すれば最高だなと思いました。。)
- モバイル通知 ( iOS 16.4 からアプリなしでも通知が送られるみたい)
こういった形で、ぼちぼちと暮らしを改善して行きたいと思っています。