2026年1月10日土曜日

dfplayerをesp32C3で動かしてみた

dfplayerはネットラジオをraspiでタイマー録音した英語教材 をmicroSDにもってきて再生、whisper使って音声認識したテキストをrapiにおいてwifiで読み取ったものをOLEDで表示できるようにしてみた(Qtで準備のためのツールも作成)。LGT8F328Pを使っていたけれど動作が不安定になってきたので、esp32c3に置き換えたついでに、テキスト表示できるようにバージョンアップしてみた。数百円で入手できるので、コスパがとてもよくなっていると思う。

GPIO5:IN2  ...file番号2桁を順に長押しで入れる。モード切り替えたら、テキスト番号のインクリメントをする。

GPIO6:IN1 ...Cmd機能とし、長押し1回でファイル番号をインクリメント、長押し2回以上でデクリメント。モード切り替えたら、テキスト番号のデクリメント

GPIO7:IN3 ...モード切替。テキスト番号を変更して表示するようにした。

esp32C3は小型のわりに機能満載で、便利に使える。

2026年1月8日木曜日

esp32-c3のWIFI不具合

 アリエクで購入したESP32-C3は、大丈夫だったのですが、某サイトで購入したほうは、WIFIがだめで、ハードの不具合かと別のもの注文してしまったのですが、どうやら、原因は送信出力にあるようで、半分の出力にしたらうまく動作しました。

  WiFi.setTxPower(WIFI_POWER_8_5dBm); // 出力を約半分に落とす

2026年1月5日月曜日

関数解析P69 閉包による集合の包含関係

 Aの閉包+Aの閉包⊂A+Aの閉包 という性質を使っている式の変形があり、なぜだろうと気になり、調べてみた。

 A={(x,0)|x∈R}  B={(x,1/x)|x>0} (双曲線の正の部分)

・A+B={(x+u,1/u)|x∈R,u>0}  これは、よく考えたら、y>0の上半面で、x軸は除く領域

・A+Bの閉包は、x軸も入る。

・AもBも閉集合なのでAの閉包+Bの閉包=A+B

  よって Aの閉包+Bの閉包⊂A+Bの閉包

今回は、chatGPTよりもgoogleのAIのほうが、的確な回答がもらえた。

2026年1月1日木曜日

SO-02Lスマホがなぜか、突然WIFI接続できなくなる

 古いスマホなので、新しいWIFIアクセスポイントと合わなくなってきたようだ。これまでWPA/WPA2-PSK(AES)からWPA2-PSK(AES)にしてみたら解決。複雑なネゴシエーションがあると、うまくいかないこともあるから?かもしれません。また、SSIDも同じでないほうがいいようです。以前は、同じにしてローミングできるようにしていましたが、家庭用レベルでは、最近はあまり推奨されないようです。業務等ではきちんと本格的なシステムにしないとローミングは難しいようです。

※その後、よく確認したら、どうもアクセスポイントの故障のようでした。新しいアクセスポイントに変えたら、動作Okでした。ローミングが原因かとうかは、よく確認していませんが、いずれにしろ、SSIDのローミングは、家庭用では、今回のような不具合があると原因がつかみにくいので、やめたほうがいいかもしれません。

2025年12月24日水曜日

OpenAIのwhisperで、処理した音声認識テキストを表示するアプリ

https://github.com/gh6141/QtMp3Srt.git 

OpenAIのwhisperで音声認識処理すると.srtというファイルができますが。これと音声ファイル(mp3)を一緒のフォルダに置いて使えるようにしてみました。ちょうど、映画の字幕のような感じで表示できます。-smallのオプションで、処理したものだと、たまに認識が間違って、若干ずれることもありますが、日本語以外等でいろいろ使えそうです。

2025年12月21日日曜日

pic16f628AによるDFplayer改良

 EPROMで、どの番号まで再生したか、不揮発メモリに記録できるようにした。フォルダは01のみとした。以前のフォルダ番号用スイッチを制御用(1回タッチで番号を進める、2回タッチで番号を減らす)とし、ファイル番号用スイッチは、1回目の連続タッチで10の位、2回目の連続タッチで1の位を指定して入力できるようにした。(ただし、10未満は、1回目のタッチを10回タッチすると0になるようにした。)

dfPlayer、しかもPIC利用だとやはり、かなり制限があって、コーディングも難しかった。

2025年12月19日金曜日

OpenAIのWhisperがローカル実行でかなりの認識率

 最近は、音声認識が、無料でしかもローカル実行で正確に認識できるのには驚きました。コマンドラインで実行できるので、アプリの中で活用できてとても便利だと思います。

バッチファイルです。途中のパスを通すところは、ffmpegのあるパスです。

radio2text.bat

.m4aなど、いったん.wavに変換してから処理しています。
LANGはenが英語、jaが日本語 --languageないとどちらも出します
--output_format srt で時間付き字幕

Qt使えば
if (line.contains(QRegularExpression("[ぁ-んァ-ン一-龯]"))) {
    // 日本語
} else {
    // 英語
}
のように分けたりもできそうです。

※なお、準備としては ffmpeg以外に、python3.9以上で
pip install -U openai-whisper
をインストールするだけで動くようです。