見出し画像

【Python】基本の音声入力はできた感じ

皆さんどうも。おはばんちゃ(´・ω・`)ノシ
HaruAkiです。

数日ぶりに記事書きます。
今週は・・・・
ってか昨日、アパート入居日だったので
鍵の受け取りやら
本格的に内装作りに取り組み始めました。
日月にまた作業しに行きます。

そんなこんななリアルですが
今日も今日で
本業で取り組んでいる「Python」について
現在の状況など
簡単に記しておきます。


脱anaconda 慣れました


先日の記事

実行ファイル(exe)作成時に
余計なモジュール
まとめて組み込んでしまうという問題

更には「condaコマンド」
対応していないものがあった場合の
「pip」との混合問題。

何かと致命的な問題が
実体験を通して
徐々に明るみに出てきたので
anaconda環境を脱したっていう話。

その後、普通にPythonをインストールして
VScordを使って
新たなPython環境を構築しました。

Pythonインストール後の
必要フォルダの位置関係や役割
その上で、
どのように仮想環境を構築するのか?

そこら辺を学べた一週間でした。

今ではexeに出力するところまで
出来るようになりました。

cmdから2つの仮想環境
それぞれにアクセスする方法も分かりましたし
切り替え方やら
モジュールインストールも学べました。

独学でやってるわけですけど
1週間前の自分と比較して
かなりできるようになったので
自分を褒めてあげたいです(笑

‥‥よく頑張った!!!


音声入力プログラム、ほぼ完成


で、取り組んでいた「音声入力」
ほぼほぼ完成です。

・speech recognition
・keyboard

これらを使ってのプログラムです。

発言した内容をテキスト化し、
単語によって分岐処理を行う。
分岐処理を終えたうえで
実際にアクティブのカーソルに書き込む。。。

そんな構成のプログラムです。

応用として、途中途中に分岐入れてます。
例えば「改行」「1行あける」「一時停止」

ここら辺の処理ですね。

「ネクスト」って発言すれば改行する。
(実際はEnterキーを押すって処理)

「オープンライン」っていえば
1行明けて改行する。

「ポーズ」って言えば
書き込み処理を一時停止する
(音声認識は生きたままにする)

ポーズ中に「リトライ」って言えば
書き込み処理を再開する。

上手く動いてくれてます。
まぁ、大半はchatGPT先生のおかげですけどね。

ただ、先生も詰めが甘いところがあって
問い詰めたり質問すると
ころころ答えを変えてしまうので
そこんところを
自身で検証したり、調べる必要があります。

そのおかげで
結果的に勉強になってます。
やっぱ楽ですよね
大まかなコード、ゼロから作ってくれるって。


「subprocess」が上手くいかない


特定ワードごとの分岐が上手く行ったので
次なる応用として
「メモ帳」って発言すると
メモ帳が立ち上がるコードをつくりました。

VScord上では
問題なく実行されるのですが
exe化のうえ実行してみると
瞬間で閉じてしまう問題が発生しました。

どうやらexeとsubprocessは
なかなか曲者らしいですね。

とりあえず、
path指定をしている行で
絶対パスを使用すると
exe化したとき、起動しないっぽい。

言われてみれば当たり前で
実際はexeの問題ってわけじゃなく
「別の環境下」ってところがポイント。

ちゃんとexeからみた
相対パスやら
そういう視点で考えないと
駄目ですよねそりゃ。

そこら辺は単に
絶対パスとして
C:\Windows\notepad.exe
と指定していたものを
別の変数を作って
文字列「C:\Windows\notepad.exe」
と、代入することで
ささっと解決しました。

ただ、それでも
別の問題が起きている事実。
やっぱりコンソールが
即行終了してしまう。

・subprocess run
・subprocess.Popen

ここら辺を使っていくと思うのですが
subprocessについて調べてみても
何言ってんだか理解できません。

別のプログラム立ち上げる方法
subprocess以外にあるのかな。

複雑なことするつもりはないんですけどね。
素直にsubprocessで
何とでもなるとは思ってます。

ただ、その対処法が全く分からない。

また来週から
改めて悩もうと思います。

たかがメモ帳ごときに
こんなに苦戦することが
毎度のこと悔しいです。

その分、
バリバリ現役のエンジニアの皆さん。

ほんとすげぇなと思います。

人の手だったら
単にGUIでクリックするだけで
ものの数秒で立ち上がる動作。

プログラムに組み込むとなると
こんなにも難しいんですもんね。

・・・・ほんとすげぇわ。
プログラム組む人たちって。。。(;-ω-)


この記事が気に入ったらサポートをしてみませんか?