🏠️Top Page

🖊️おもしろき こともなき世をおもしろく 住みなすものは 心なりけり.

⏩️Pythonの仮想環境で使おうの巻. python3 -m venv

おはようございます.Pythonの仮想環境で使おうの巻です、この頃PHP言語の技術的なお話は避けようと思っていて代わりにpyの話を書こうと思っています.PHPのお話を避ける理由は業務で使用しているので、何処まで書いて良いのやらになっている事が理由です.

その代わりにPythonは業務で今のところ使用していないので書きやすい.そういう理由からPythonの事を書いていこうと思っています.この頃、Python記事が多いのもそういう経緯があります.

python -m venv 仮想環境名任意「英字」

今日、ご紹介するのはPythonを実行するのは仮想環境下で行おうという話です.上記のコマンドを打つと仮想環境が任意のディレクトリ配下に作成されます.仮想環境をアクティブにしたい場合は下記のコードでアクティブ化出来ます.アクティブ化した後、インストールやPythonを実行しましょうって話です.

Macやリナックス
. 仮想環境名任意/bin/activate
うぃんどーず
.\仮想環境名任意\Scripts\activate

こうすることで何が良いのかと言うことだけどもCドライブやドキュメント配下がライブラリに侵食されないという利点があります.あとDockerで立ち上げなくても良いというのもあるかな?

トイウコトデ、仮想環境のお話でした.

明日へ続く

⏩️大晦日までカウントダウンしてまたカウントダウンするJSコード #永遠

おはようございます.大晦日までカウントダウンしてまたカウントダウンするJSコードだけではツマラナイので全て漢字に変換して表示するコードを書きました.これでもツマラナイと思う人もいると思います.

そんなに難しいコードでもないのでコードを添付します💁.

        function updateCountdown() {
            const now = new Date();
            const nextNewYear = new Date(now.getFullYear() + 1, 0, 1, 0, 0, 0); // 次の年の1月1日0時0分0秒
            const diff = nextNewYear - now; // ミリ秒差

            if (diff > 0) {
                const days = Math.floor(diff / (1000 * 60 * 60 * 24));
                const hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
                const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60));
                const seconds = Math.floor((diff % (1000 * 60)) / 1000);

                // 表示を更新
                document.getElementById("countdown").innerText =
                    kanji(`${days}日 ${hours}時間 ${minutes}分 ${seconds}秒`);
            } else {
                document.getElementById("countdown").innerText = "明けましておめでとうございます!";
            }
        }

        // 初回呼び出しと1秒ごとの更新
        updateCountdown();
        setInterval(updateCountdown, 1000);
        function kanji(str){
            let oo = [{'kanji':'零'},{'kanji':'壱'},{'kanji':'弐'},{'kanji':'参'},{'kanji':'肆'},{'kanji':'伍'},{'kanji':'陸'},{'kanji':'漆'},{'kanji':'捌'},{'kanji':'玖'}];
            oo.forEach((o,index)=>{
                str = str.replace(new RegExp(index, "g"),o.kanji);
            });
            return str;
        }

もっと芸のあるカウントダウンを作ろうとするとp5jsなどのライブラリが必要になると思います.WEBサイトでパーティカルなどを行っているサイトは大体こういうライブラリを使用しています.p5jsなどを使用して昔作ってみようかななどと思ったことが有りますが、実はp5jsは一度も触ったことがないです.

明日へ続く

⏩️日本語に特化したOCR、文書画像解析Pythonパッケージ「YomiToku」でとさでん時刻表を解析

おはようございます.日本語に特化したOCR、文書画像解析Pythonパッケージ「YomiToku」でとさでん時刻表を解析出来るかやってみました.とさでん交通は未だに時刻表がPDFなのでとても見にくいのです、業者さんは提案しないのかな.

ちなみにとさでん交通さんとは高知県の路面電車になります.地元のために頑張ってる公共交通機関ですが過去には経営が厳しい時期もあったようです.今も大変は大変だと思います、高知県は基本的には公共交通機関を使用する人よりも車通勤が多いです、そして少子高齢社会が進んでいる県でもあるので.

そんな公共交通機関の時刻表PDF解析してHTML化してみようと機械学習のPythonライブラリ「YomiToku」を使用してみました、結果、なかなか精度は良いのですがHTML化された物をそのままでは使用できないので手直しが必要です.

恐らく普通のPDF表だったら、綺麗にHTML化出来ると思いますが、とさでん交通さんの時刻表が特殊過ぎるのでこういう結果になったのだと自分は結論付けました.

ちなみに巷では一回画像へ変換しないといけないなどと記載している記事を見かけますが、PDFファイルのまま、OCR解析出来ます.

自分はこんな感じのコマンドラインで実行しました.

yomitoku ./pdfs/akebono.pdf -f html -o output_html

明日へ続く

⏩️AIが予測するトランプ政権下のドル円相場って事で自分は.

おはようございます.AIが予測するトランプ政権下のドル円相場という記事を見ましたか?65%の確率で来年160円台になるだろうと予測されています.

自分は一部預金をドル預金に変更しました.ドルにして2日で1000円プラスになっていますが、1ドルが160円になっても一部の預金なので1万円ぐらいしか儲からない.もし100万、1000万をドルに今変える事が出来ればドルが160円になれば10万、100万の利益を得ることが出来る可能性があります.

逆にドルが140円になる可能性もあるかもしれないが今のままではそう変わりそうにない.

FXでレバレッジをかけてやると大きく利益を得たり大きく損したりするので自分はそういう事はせずに、米国預金で来年ちょっとお小遣いを捻出しようと思って外貨預金にしました.

未来はどうなるか分からないので、ある意味、人生は賭けなんだと思います.

※為替介入というリスクがあります.

明日へ続く

⏩️読めるのに書けないってプログラムコードでも有り得るようになるのかも.

おはようございます.今後、生成AIが進化する中、読めるのに書けないってプログラムコードでも有り得るようになるのかもとふと思ってしまう.例えばPHP言語なら自分はある程度コードはかけるのだけど、Pythonになるとあまり慣れていないせいか、あまり思うように書けない.

ついつい生成AIに頼ってしまう.そうなると生成AIで記載されたコードを読んでカスタマイズすることになる.

そう、読めるのにコードが1から書けない状態に陥ってしまう.これを打開するには自分でコードを書くしかほかならない.これから先、生成AIが進化する中で自分みたいに読めるのに書けない人もエンジニアも仕事をしていくことになるだろうか.

ともあれ生成AIは進化している中でプログラムコードはエンジニアが書くという機会は減っていくのは必然なのかもしれない.

生成AIに頼ってしまうは検索サービスよりも依存してしまいそうだ.

明日へ続く

⏩️Pythonでノイズキャンセリングアプリ化するコードです😤デスクトップアプリ

おはようございます.昨日の続きを記載します、Pythonでデスクトップアプリを作りました、デスクトップにPythonが入っている環境で下記のファイルを実行することでノイズキャンセリングが出来ます.

尚、前手順でライブラリを2つインストールください.

pip install scipy noisereduce
import tkinter as tk
from tkinter import filedialog, messagebox
from scipy.io import wavfile
import noisereduce as nr
import os

def select_file():
    file_path = filedialog.askopenfilename(
        filetypes=[("WAV files", "*.wav")]
    )
    if file_path:
        file_entry.delete(0, tk.END)
        file_entry.insert(0, file_path)

def reduce_noise():
    file_path = file_entry.get()
    if not os.path.isfile(file_path):
        messagebox.showerror("エラー", "Please select a valid WAV file.")
        return

    try:
        # Load data
        rate, data = wavfile.read(file_path)
        
        # Perform noise reduction
        reduced_noise = nr.reduce_noise(y=data, sr=rate)

        # Save reduced noise file
        output_path = os.path.splitext(file_path)[0] + "_reduced_noise.wav"
        wavfile.write(output_path, rate, reduced_noise,stationary=True,prop_decrease=0.7)
        
        messagebox.showinfo("成功", f"出力先:\n{output_path}")
    except Exception as e:
        messagebox.showerror("Error", f"An error occurred: {e}")

# Create the main application window
root = tk.Tk()
root.title("ノイズキャンセリングツール")

# Input file selection
frame = tk.Frame(root)
frame.pack(pady=10, padx=10)

tk.Label(frame, text="Select a WAV file:").grid(row=0, column=0, pady=5, padx=5)
file_entry = tk.Entry(frame, width=40)
file_entry.grid(row=0, column=1, pady=5, padx=5)
select_button = tk.Button(frame, text="Browse", command=select_file)
select_button.grid(row=0, column=2, pady=5, padx=5)

# Noise reduction button
process_button = tk.Button(root, text="ノイズ除去", command=reduce_noise, bg="lightblue")
process_button.pack(pady=10)

# Run the application
root.mainloop()

因みにこのコードをパッケージ化したい場合はPythonの下記のライブラリをインストールするとパッケージ化が出来ます.

pip install pyinstaller
pyinstaller noise-cut.py

自分でもノイズキャンセリングを試してみましたが精度はいまいちでした、noisereduceの微調整が必要になりそうです.

明日へ続く

⏩️音声ノイズキャンセリングはこれ使っています.

おはようございます.AIで生成されたボイスにノイズが入るので音声ノイズキャンセリングを使っています.これを使用するとVideoProc Converter AIを使用すると結構きれいにノイズキャンセリングが出来るので良いです.

因みに自分は買い切りタイプを使っています.またOBS Studioなんかでも上手く使用するとノイズキャンセリングが出来るらしいけど、AI程ではないと思っています.

また無料でノイズキャンセリングしたい場合はnoisereduceと言うPythonライブラリがあるので使用すると良いかも知れない.使用の仕方は公式サイト(GitHub)に記載れたいる通りに行えば良いだけです.

pip install noisereduce

ライブラリをインストールしてきて次にサンプルコードのファイル名を任意の音源ファイル名に変更してサンプルコードを実行すればノイズキャンセリングされた音源が出力されます.

from scipy.io import wavfile
import noisereduce as nr
# load data
rate, data = wavfile.read("mywav.wav") #ノイズのある音源
# perform noise reduction
reduced_noise = nr.reduce_noise(y=data, sr=rate)
wavfile.write("mywav_reduced_noise.wav", rate, reduced_noise) #ノイズキャンセリングが出力される

因みにサンプルコードではサンプルコードと同じ階層にノイズのある音源があるものとしています.

自分は手持ちに有料のAIノイズキャンセリングがあったのでそれを使用していますが、サンプルコードを元にオリジナルのアプリを作って自分だけで利用するのはありかなと思います.

明日へ続く

⏩️コンスタントに入ってきていた副収入が来月は恐らく入らないかも.

おはようございます.コンスタントに入ってきていた副収入が来月は恐らく入らないかもしれないので来年から新たにブログを始めます.このブログは一番の稼ぎ頭だったのだけどいまは2番手に格下げです.何が原因なのかは大体のところ分かっているのですが、その対応を行って効果が出るまでには半年ぐらいかかると思うので気長に待つしかないです.

来年はブログを3つぐらい運営して何とか認知されれば良いのだけども、自分の経験からアクセス数が伸びるのには一年ぐらいはかかると判断している.即効性を期待したいのならばドメインを買うことが効果的と言われてきたけど、今でもそれが一番、順当なのかは分からない.

因みにこのサイトは検索から流れてきたユーザーも多いだけど、SNSから流れてきたユーザーも結構いる.ユーザーさんの定着率も増えてきましたので毎日記事を書いていて良かったななんて思っている.

ユーザーさん、有難う御座います.

これからも毎日更新を続けていきたいので今後とも宜しくです🙇‍♂️.

明日へ続く

⏩️カブアンド会員数が100万人に達したことについて思うこと.

おはようございます.カブアンド会員数が100万人に達したことについて思うこと.これってどうなるだろうか、上場企業になるには残り何人必要なのかな?100万人って結構多い人数だと思います、たぶん確率的には知り合いの知り合いにカブアンドのサービスを使っている人がいる...

そう思うとお金に困っている人や富を得たい人が前澤友作社長さんに一か八かにかけているのだなって思うわけだけど余程の株を現時点で保有しないと億万長者にはなれないのでは無いかなと思っている.大量に株を増刷?しているって事は1株の価値も刷ればするほど価値も低くなりそうな気がします.

前澤友作社長さんは、そこら辺も考えているとは思うけども自分の馬鹿な頭で考えるとハズレはないけど大当たりもない宝くじのようなモノではないかと思って「うーん」どうなのって思って今は会員登録すらしていない.

まぁでも前澤友作社長さんは悪い人ではないという皆の信用から、これだけの会員登録がされただろうと.恐らくカブアンドの野望は楽天経済圏のようなモノにしたいのかなって思っている、その中で経済が回ってみんなハッピーみたいなそういう経済圏を作ろうとしているのではないかと.

明日へ続く

⏩️たぶんだけど人型ロボットとは別のロボットがブルーカラーの仕事を奪う.

おはようございます.たぶんだけど人型ロボットとは別のロボットがブルーカラーの仕事を奪う.いまの技術で倉庫内作業や工場内の作業をロボットで全自動化出来る.

いまの倉庫内や工場内は人が働く環境に合わせた働けるように設計されたものです.わざわざそれを人型ロボットを導入して自動化しようと思うのは大企業ぐらいのものかも.

これから倉庫内作業や工場内作業を自動化しようと思っているスタートアップは全自動化に力を入れたほうが賢明なのかもしれない.たぶん今の既存の技術をしようすればそれが出来てしまう.

ブルーカラーもホワイトカラー同様に数十年後には仕事が奪われると自分は思っている.ホワイトカラーの仕事が奪われた人材がブルーカラーの仕事を奪いブルーカラーは新たな仕事を探さなくてはならなくなるという図式が数年後に起こりそうな気がする.

今までと違うのは新たな仕事が生まれそうにない所だ、ロボットが壊れてもロボットがロボットを修理するようになると思っていて最終的には人は仕事をしなくても良くなるじゃないかな.

仕事とお金は結びついているし社会経済も紐付いている.上手くシフトしないと社会が崩壊しかねないと思っていて国はなかなか難しい舵取りを迫られる気がする.

過去に馬鹿みたいに言っていたことが徐々に現実的になってきている今日此の頃.シンギュラリティという本に書かれた人2.0はあり得る話なのかもしれない.

明日へ続く