音声合成モデルをStyle-Bert-VITS2を使って作ってみたよ

音声合成モデルの作成 前回Style-Bert-VITS2を試しに使ってみることをやってみました。今回は実際にモデルを作ることをやろうと思います。 まずは音声の収録ですね。こちらに関しては自身でいろいろ試してみるしかないですね。とりあえずノイズキャンセリング付きや単一指向性マイクなどがいいかもしれません。後は収録時に詰まったり、変な発声になったりせず滑らかに読むことですね。無音は多少なっても大丈夫なので。 次に音声データセットの作成です。こちらは前回やったので飛ばします。収録した音声を勝手に10秒程度に切り分けてくれますので。 文字おこし時のエラー対処 私は文字おこしで以下のエラーが出たので"pip install tf-keras"で対処しました。 RuntimeError: Failed to import transformers.models.whisper.modeling_tf_whisper because of the following error (look up to see its traceback): Your currently installed version of Keras is Keras 3, but this is not yet supported in Transformers. Please install the backwards-compatible tf-keras package with `pip install tf-keras`. . エラーメッセージが空の場合、何も問題がない可能性があるので、書き起こしファイルをチェックして問題なければ無視してください。 その次はこのようなエラーが出ました。 site-packages\transformers\pipelines\audio_utils.py", line 37, in ffmpeg_read raise ValueError("ffmpeg was not found but is required to load audio files from filename") from error ValueError: ffmpeg was not found but is required to load audio files from filename その場合は以下の手順で対応しました。私はwindowsかつVS Codeなのでmacとかは別になります。Gitでクローンする方法でも大丈夫です。 ...

2024年12月15日

StyleBertVITS2を使って自身のデータセットを作成してみるよ

前回Aivis Speechを触ってみたので自身の音声合成モデルを作ってみたいなと思い調べてみました!StyleBertVITS2は音声合成がメインになると思います。他にも学習やデータセットの作成もできます。というわけでStyleBertVITS2を使っていきます! StyleBertVITS2のインストール というわけでまずはStyleBertVITS2のインストールからですね。基本的にはGithubに載ってますのでその通りで問題ないと思います。 ただ、私は仮想環境作るのが面倒なタイプでpythonのversion別(3.10と3.12)でしか管理してないのでそれに合わせたコマンド使用しています。プロジェクトが複数存在しないのであれば、使わなくていいかなと思う派です。思想は人それぞれなので。 # 各種ライブラリのインストール git clone https://github.com/litagin02/Style-Bert-VITS2.git cd Style-Bert-VITS2 py -3.10 -m pip install "torch<2.4" "torchaudio<2.4" --index-url https://download.pytorch.org/whl/cu118 py -3.10 -m pip install -r requirements.txt # モデルのダウンロード py -3.10 initialize.py # エディター画面の表示 py -3.10 server_editor.py --inbrowser または py -3.10 app.py StyleBertVITS2_server_editor.pyの実行 server_editor.pyを実行した場合は以下のような画面になります。その前に利用規約に同意しましょう。特に性的や政治的、フェイク系はやめましょうという感じですね。 この辺は音声合成モデルを使用するという感じですね。やってることはAivis Speechと同じような感じだと思います。 StyleBertVITS2_app.pyの実行 こちらではモデルの作成などは出来なさそうなので、もう一方のプログラムを実行してみます。app.pyのほうですね。 こちらであればデータセット作成、モデルの学習、マージもできそうなのでこっちを使ってみます。 スタイルの作成方法 まずはスタイルの作成をする必要がありますがデータが必要になります。必要なデータは1時間ほどあれば十分だと思いますが、数十分でもできそうな気はしています。試してないので何とも言えませんが… もし10秒程度のwavファイルが360個ほどあれば十分なのでその時はスタイルの作成を行ってください。説明にもありますが、Dataフォルダとは別で配置しておくとスタイルの管理も楽なので別フォルダを作っておくと良いかもしれません。1スタイルなら適当な配置でもよさそうです。 wavファイルの準備 次はデータセットがない場合ですね。もし自身の声を使用しない場合はどこからかwavファイルをダウンロードする必要があります。状況によっては環境音や音楽を削除するなどの対応も必要かと思います。ただ、今回は自身の声で作成する想定なのでこの工程は省きます。 もし、細かい音声データを大量には持ってないけど、数十分~1時間のwavファイルがある場合はデータセットの作成を行いましょう。 データセットの作成 まずはinputフォルダにデータを入れます。録音などの環境がまだ整ってないので一旦前回使用したwavファイルを使ってみます。 次はモデル名を決めましょう。私はまだ本格的にやらないので適当に"test"にしました。秒数の設定などは一旦デフォルトにしています。この辺は好きなように設定すると良いです。“成功すればスライスが完了しました。“というメッセージが出て所定のフォルダに出力されます。 大体10秒近くの音声ファイルが出力されます。これでスタイル作成の準備が整ったのでスタイル作成をして学習という流れになります。 終わりに ここまで書いてきましたが、私の方でまだデータの準備ができていません。 一人で話して録音する分には問題ないです。ただ、マイクがゴミだったのでまともなマイクを使って収録したいと思います。 ...

2024年12月2日

AI音声合成のAivisSpeechを触ってみたよ!

まずはAudibleという形でこの記事を読み込ませてみました。今後も活用してみようと思います。 AivisSpeech とは? DMMのにじボイス(旧:DMMボイス)でいろいろ騒がれていたところに商用利用もできる無料のAI音声合成が出ていました。 Aivis ProjectのAivisSpeechですね。他のプロジェクトもありますが、一旦試しで使ってみる場合はAivisSpeechになると思います。 AivisSpeechのインストール方法 というわけでまずはダウンロードしてみましょう!ダウンロードする場合はWindowsとMacがあります。私はWindowsなのでこちらのインストーラー版をダウンロードしてきます。 インストーラーを実行しようとするとワーニングの表記が出ます。元のHPにも書かれていますが、コード署名はまだ行われていないようです。一旦開発をガシガシ進めて、余裕が出来たらコード署名もやるとは思います。今回はこのまま実行していきます。 インストールが完了したら実行しましょう。途中でダウンロードするファイルがありますが、不要であれば削除しても問題ありません。私はチェックを入れて特に問題なかったので。 起動するときと喋らせるときは時間がかかることがあります。この辺はPCの性能にもよりますので、人によっては数秒以上かかることもあるかと思います。 ライセンス情報に同意して始めましょう。内容を確認したほうが良いですが、著作権や商用、個人情報について書いてはないのでそのまま続けましょう! ポリシーは自由にしてもらって大丈夫です。私は基本的により良くなっていってほしいので許可することは多いです。ただ、拒否しても問題ありません。 音声合成 ダウンロードが完了したら試しに文字を打って実行してみましょう。PCによっては多少時間がかかるかもしれませんが、数秒で応えてくれます。デフォルトだとこんな感じですね。 右側の和側やテンポなどを変え、アクセントも少し変化させてみます。右側の喋る部分についてはプリセットで登録できますので、好みの話し方を模索すると良いと思います。こんな感じ。 音声の書き出しと読み込み 話し方を決めて話す内容を決めたら音声を書き出してみましょう!“音声書き出し"だと段落ごとに出力されますので、それが嫌な場合は"音声をつなげ書き出し"を行います。出力時の拡張子はwavファイルになります。 また、書いた内容をテキストファイルとして出力することもできます。逆に書いた内容がテキストファイルとして存在していれば読み込むことも可能です。 そしてプロジェクトを保存すればいつでも同じ話し方と話す内容で作業することができます。 それからモデルによってはスタイルがあります。このスタイルはアイコンをクリックすることで変更することができます。デフォルトだと6種類ですね。 設定などの変更について 後は設定もいろいろ変更できます。基本的にCPUでも動かせますがGPUでも動かすことができます。それから保存先です。ここを設定しておくと保存が楽になるのでやっておくとおすすめです。 もし、他の操作でわからない点や気になることがあればヘルプを見ることをおすすめします。ルビを振ったり、メモを残す方法などもありますので興味があれば一読すると良いと思います。 終わりに 他の音声モデルについてはこちらから確認することができます。ただ、今はあまり多くないのでここから選択するか、待つか、自分で作ってみるのも手だと思います。作るのは大変そうですが… 次はモデルを作ってAivis Speechに取り込むまでをやってみたいですね。ではでは。

2024年11月29日

pCloudがセールをやってたので購入してみたよ!

pCloud 3in1バンドルのレビュー pCloudがブラックフライデーセールをやっていたので購入してみました。以前から気になっていたのですが、このタイミングのセールがよさそうだったので待ってました。 購入したもの 今回買ったのは3in1バンドルですね。内容は以下 ストレージ5TB セキュリティ性が高いEncryption パスワード管理サービスのPass Premium pCloudのセール価格について 値段は599$、現在は154円/$なので大体9万2千円ですね。最初のコストが高いですが、99年使えるのでサブスク換算だとかなり安くなります。 その他の値段を見ると以下の金額。 1TBだと199$ 2TBだと279$ 10TBだと799$ 例えば1TBを買った場合、月26円ぐらいで1TBのストレージが使えます。もちろん写真以外にも動画、音楽、ドキュメントファイルなどなんでもよいですね。 注意してほしいのがこの会社が潰れないということが前提ですね。潰れない限りは日がたつことにどんどん安くなっていくイメージですね。 AWSやGoogle Cloud、iCloudは月間のサブスクなので、これらを使っているのであれば一考の余地ありという感じです。 実際に触ってみた感想 実際に使ってみた画面がこちらですね。「Automatic Upload」には自動でアップロードされたファイルがあります。こちらはwebで見た画面です。 アプリもありますので必要であればダウンロードしましょう。PC版モバイル版ありますのでファイルの同期をしてみます。 ちなみにPC版のアプリは画像のように各フォルダー別にバックアップをすることができます。 他のフォルダも同期から選択することができます。 CryptoフォルダはEncryptionサービスになります。見られたくないものや大事な書類を入れておくものに使ったりします。ただ、個人で使う場合は個人情報ぐらいしか思いつかないですね。プログラムならprivateでgit管理しそうですし… pCloud Pass Premiumについて もう一つPass Premiumというサービスを買いました。これはパスワードの管理ですね。こちらもWeb版アプリ版モバイル版で使うことができます。 ログインするとこんな感じです。色んなブラウザやパスワード管理ツールが出てきます。私はChromeを使ってるので実際にインポートしてみます。 Chromeのエクスポート方法 Chromeの場合は右上の縦三点リーダーから"設定" > “パスワードと自動入力” > “Googleパスワードマネージャー"を選択します。 パスワードマネージャー画面から"設定"を選び"パスワードのエクスポート"にある"ファイルをダウンロード"をクリックします。そうするとcsvファイルがダウンロードされます。 ファイルのインポート他 ダウンロード後はpCloud passからChromeを選び以下の画面にファイルをアップロードします。内容を確認して問題なければ"選択内容をインポート"をクリックします。 もし他のブラウザやパスワード管理ツールを追加したければ"追加"をクリックして同様の手順で設定すれば問題ありません。 ちなみにGoogle Driveやフォトのバックアップができますが、1アカウントだけみたいなので複数のアカウントに分けてる場合は別の方法が必要そうですね。 ざっくりpCloudはこんな感じですね。5TBもあるのである程度動画を入れても問題なさそうです。以前動画を作ったことがあるという話をしたのですが、それを全部突っ込んでチャンネル爆破でも楽しそうですね。 お得なキャンペーンをやってるらしい 最後に対象のサイトからpCloudの商品を買えばアマギフがもらえます。もちろん買う商品によって値段は変わりますが、1割弱戻ってくるのでお得です。 もしpCloudを購入したらエントリーしましょう。 姓名とメアドを記載したらエントリー完了です。ただ、調査がセール終了後になりますのでアマギフ送付が正月くらいになるみたいです。 最後に とは言えストレージはそんなに要らなければ買う必要はないと思います。強固なフォルダーもあまり使わなそうですし、パスワード管理は代用がいくらでもあるので。私は将来的にあると使えるかな?程度で買ったので興味とお金に余裕があれば試してみてください!ではでは。

2024年11月17日

簿記の勉強を暇なタイミングやる!世界でも使えそうかも?

簿記を始めたのはなぜか? 前回のブログでゲームに飽きてきたという話をしました。というわけで勉強をしようかと思います。 簿記に挑戦:コースについて プログラムの勉強もいいんですが、普段+副業でもやってるので変わった勉強をしたいなと思いましした。そこでこのサイトですね。アカウントを登録すると使えるようになります。 色んなコースがありますが、メインは簿記だと思います。問題集の解説もありますので、試験勉強だけでも使えると思います。他のコースは今のところ興味がわかないので無視します。 まずは簿記3級ですね。簿記2級を1つ見てみたんですが、簿記3級の知識を前提に話を進めていたので。 簿記に挑戦:教材の活用 それから動画だけでなく教材もあります。紙媒体ではなくpdfですが。コースを見ると左のタブに講義、右のタブに教材があります。ここからダウンロードできますので、欲しければダウンロードしてみてください。 さて、動画見て教材見て手を動かしながらやるのが勉強としては一番の近道だと思います。 進めていきながら時々忘れていることがあれば、立ち止まってなるべく思い出すまで考えて、どうしても出なければ復習するという感じでやるのがいいかなと思います。 ただ、私はITに従事する者です。これだけではわからないことがあった際に聞けないこともあるなと感じました。 NotebookLMを使ってサポート というわけでNotebookLMの出番です。実は最初Difyを使おうとしたのですが、15MBという制限がありましたので変更しました。勉強したいpdfを全てぶち込んでみましょう。 一旦概要と用語集を作ってみました。 作り方はシンプルでチャットに「教科書から概要を作成してください」や「教科書から用語集を作成してください」と入力します。 そうするとpdfを読み取って作成してくれます。それをメモに保存するという流れになります。作成されたチャットの下部に「メモに保存」があるのでそれをクリックすれば作成されます。 NotebookLMの活用法 大体概要や用語集を作れば困ることは少ないかと思いますが、動画内の説明でわからないことがあれば質問すると答えてくれると思います。あるいはこんな感じで質問の方法を出してくれることもありますので。 もう一つ有効活用としては類似問題の作成ですね。「問題集を見て似たような問題を3問作成してください。」と言えば3問類似問題を作成してくれます。一応「解答を作成して下さい」と言えばそちらも作成してくれます。 とは言え全て正確か?という言われるとわかりません。特に類似問題を作成した後の解答などは怪しいかもしれません。LLMを使うときは当たり前ですが、鵜呑みにはしないようにしましょう。時には教材を見直すことも必要なので。 Courseraでさらに深い学びを 今は空いた時間でやってるところなのでこの勉強をしていますが、仕事を辞めた直後ぐらいであればCourseraで勉強しようかと思います。こちらですね。 ここはほぼIT系の勉強になりますが、認定証ももらえますし、コースによっては海外大学の証明書ももらえます。もちろん有償ですが… ただ、コースの認定証だけなら7日間の無料トライアルがあります。この期間に1つぐらい取りたいなと思ったので空いた時間にやってみようと思います。ではでは。

2024年10月26日

llma-cpp-pythonを使って今更ローカルでLLMを動かしてみるよ!

llama-cpp-pythonのインストールとセットアップ 前回Github copilotをを使わず、vscodeでAIを動かしてコードを頼むようにしてみました。 そこでローカルでllama3.2:3bが動かせるなら他のモデルでもいけるのでは?ということが気になって調べて動かしてみました。 githubのライブラリはこちらになります。 というわけでまずはライブラリのインストール pip install llama-cpp-python こちらはcpu対応になります。もしエラーが出たら下のほうも試して見てください。私はvisual sutadioが入ってるので特に問題はありませんでした。 pip install llama-cpp-python \ --extra-index-url https://abetlen.github.io/llama-cpp-python/whl/cpu gpuを使いたい方はいろんなインストールパターンがあるので試して見てください。CUDAであればこんな感じ pip install llama-cpp-python \ --extra-index-url https://abetlen.github.io/llama-cpp-python/whl/cu121 ダウンロードしたモデルの紹介 ライブラリのインストールが完了したら今度はモデルをダウンロードしてきましょう。配置場所はどこでも構いません。 私は今回2つのモデルをダウンロードしてきました。 sakanaAI: https://huggingface.co/mmnga/SakanaAI-EvoLLM-JP-v1-7B-gguf gemma: https://huggingface.co/alfredplpl/gemma-2-2b-jpn-it-gguf llama-cpp-pythonを使ってコードでのモデル呼び出し インストールが完了したら実際にコードに書いていきます。一旦こんな感じ from llama_cpp import Llama prompt = "(12+50)*30/5-6*(38-19) この計算結果は何?" sakana_llm = Llama(model_path="./models/sakana/SakanaAI-EvoLLM-JP-v1-7B-q4_K_M.gguf") gemma_llm = Llama(model_path="./models/gemma/gemma-2-2b-jpn-it-Q4_K_M.gguf") sakana_response = sakana_llm.create_chat_completion( messages = [ { "role": "user", "content": prompt, } ] ) gemma_response = gemma_llm.create_chat_completion( messages = [ { "role": "user", "content": prompt, } ] ) print(sakana_response["choices"][0]["message"]["content"].strip()) print(gemma_response["choices"][0]["message"]["content"].strip()) llama-cpp-pythonを使った実行結果と考察 それからどのくらい時間がかかるか気になったので計測してみました。ちなみに私の環境ではこんな感じで時間がかかっています。 ...

2024年10月11日

Github Copilotを使わずVSCodeにContinueを入れて使ってみる

無料で使えるAIツール「Continue」でVSCodeにAIコード補完機能を導入する方法 Github Copilotが出てだいぶ時間が経ちましたが、IDEで未だにAIを使わず開発をしています。 Github Copilotは料金がかかりますし、open-interpreterを使ったとしてもopenAIのapiを使ってるので料金はかかります。 結果ほぼIDEでAIを使わずやってきたのですが、最近Continueが出たということを聞きました。こちらはllamaなどのオープンソースを使ってるので、料金はかからなそうです。参考にした記事はこちらになります。Continueのサイトはこちらです。llamaの使い方はこちら。 Continueのインストール手順 というわけでまずはインストールしてみます。 インストールが完了すると左のタブに表示されます。モデルの選択でどのモデルを使用するか選ぶことができます。 Llamaモデルのダウンロードと設定 チュートリアルに従って次はllamaをダウンロードします。こちらですね。最近llama3.2が発表されたので3.2になってますね。3.1が良ければこちらからダウンロードできます。 次にOSを選んでダウンロードしましょう。もしモデルのアップデート通知が欲しければアカウントを作って登録すると良いと思います。ニュースになるので今はやらなくてもいいかと ターミナルでモデルを実行 実行ファイルがダウンロードされるので開いて案内に従っていきます。インストールが完了すると実行ファイルなどが入っています。実行するとコマンドプロンプトから実行してくださいと言われます。 というわけでターミナルを開いて以下のコマンドを実行します。チュートリアルでは3.1:8bとなってますが、今回は3.2:3bを使用します。 ollama run llama3.2:3b 大きなモデルの利用(任意) 一応チュートリアルではGroqとtogetherなどのサイトのAPIを使えば大きなモデルも使うことができるみたいです。ただ、料金などもかかりますので今回は省きます。 Continueのモデル設定とconfig.jsonの編集 最初のモデル選択の部分でFree Trialのモデルを使えます。こちらを使う場合はGitHubにサインインする必要があります。今回はllamaをインストールしたのでlocal modelを使うことになります。 次はconfig.jsonを編集していきます。llama3.1を使う場合はこの"Add Chat model"から設定できますが、今回は3.2なのでconfig.jsonを直接編集していきます。Free Trialが不要であれば削除しましょう。編集する際は歯車を押せばconfig.jsonを開きます。 エラー対処とモデルの接続 文字を入力してみましたが、エラーが出ました。大元のモデルは動いてますが、チャットモデルも必要みたいです。オートコンプリートモデルはコーディングをするとき予測して文字を補完するモデルです。というわけでpullしてみます。 コマンドのターミナルをクリックすればターミナルにコマンドがコピーされますので、pullしましょう!もしこんなエラーが出たらおそらくVSCodeがポートを使用しているのでターミナルから実行してみてください。 Error: Head "http://127.0.0.1:11434/": dial tcp 127.0.0.1:11434: bind: An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full. 両方のモデルをpullすれば無事接続ができます。接続した際、llama3.1のモデルがconfigに追加されます。まあtitleやmodel名は違いますが消しても大丈夫です。接続できたことを確認できれば、初めのconfigで設定したモデルを使用できるようになります。 Continueを実際に使ってみる というわけで使えるようになりました。もちろんChat-GPTやCloudeのほうが性能がいいと思います。ノートPCで使えるローカルモデルではないですし。ただ、ネットにつながず軽量なモデルだとは思いますのでもう少し試してみようと思います。 ...

2024年9月30日

機械学習の無料講座をGoogleが出しているので受けてみたよ

E資格合格後に再学習を決意した理由 E資格を合格した後復習とか出来てないので、改めて学びなおしてみようと思ったのがきっかけになります。こちらから受けることができます。必要に応じて日本語に切り替えることもできます。 生成AIの進歩もありそれにまつわるような部分もあるので、ぜひ理解を深めたうえで使っていくと良いと思います。 機械学習講座の学習ツールとインターフェース タブに基礎コースと上級コースがあるのでまずは基礎コースからやってみました。 初めの内容としてはこんな感じですね。 右タブに情報とチャットとAPIがあります。 情報はこのページの目次ですね。チャットは生成AIを使って質問することができます。わからないことがあったら随時聞いてみるといいと思います。サービスの同意をしたら試してみましょう! APIを使えばデータを見ることができます。一覧はこちらにあります。今回は一旦無視しますね。 理解度チェックとインタラクティブな学習 目次の項目によっては理解度チェックがあります。下の画像の場合は三択から1つ選んでクリックすることになります。日本語だと微妙な部分もありますので、英語で見てみるのも手ですね。 正解の選択肢では説明を見られるものもあります。間違った場合は別の選択肢をクリックしましょう。間違ってもペナルティがあるわけではないので、ミスは気にせずページをよく読んで解答するとよいです。 動画コンテンツでの学習補助 さらに動画もあります。概要の説明をしているので興味があれば見てみてください。英語説明ですが画面を見てるとなんとなくわかるので、必要であれば字幕を付けるなどして見てください。 基礎講座だけでも十分機械学習について学ぶことができます。一応上級講座も見てみました。 基本的に変わりませんが、前提知識や実装経験が必要になってきます。 なのでまずは基礎で十分理解と実装経験を積んでから上級に行くことをおすすめします。 機械学習のプログラミング演習活用 講座を進めていくとプログラミング演習を実施することもできます。英語なので必要に応じて日本語訳してみてください。 機械学習講座後のバッジとプロフィールの公開 学習が終わってチェックテストをクリアするとバッジをもらうことができます。お気に入りを5つまで設定できるので、いっぱい集めてみようと思います。 プロフィールを公開すれば他の人にも見られるようになります。転職等で使えるんですかね? 今後の学びと実践に向けた決意 機械学習には教師あり、教師なし、強化学習、生成があります。本来全てやることは少ないかと思うので全て学ぶにはかなり時間がかかると思います。 ただ、これが理解できればどのようなデータが仕事に使えるかわかるようになります。また売上予測や顧客分類、キャンペーンの効果も見える部分が出てくると思います。 しっかり学んで実際のデータで試してみれば学習の実感が出てくると思うので頑張っていきましょう!私も再度学びなおして理解を深めていきます。ではでは。

2024年9月14日

人間っぽいふるまいをするスクレイピングを検討した話

前提:利用規約に違反しないこと 前提として利用規約に違反する行為はやめたほうが良いと考えています。 法的に訴えられても文句は言えないですし。 多くの人が利用しているamazonなども利用規約で禁止しているので、スクレイピングをする際はしっかりと利用規約を読んだうえで行ってください。許可が下りれば問題ないとは思いますが。 サイト側のスクレイピング対策 本題に入ります。 サイト側でスクレイピングを弾く設定がいくつか存在します。例えばユーザーっぽくないふるまいでサイトにアクセスした場合。あるいは特定のサイトを経由しないと見れないURLに直接アクセスした場合。ゆうまでもなく連続でいろんなURLにアクセスした場合。 連続でアクセスされるとサーバーに負荷がかかるので、これが弾かれるのは想像に難くないと思います。 スクレイピング対策を避ける方法 ただ、スクレイピングするされた場合、上記のような特徴が存在します。 この辺はアクセスログを監視すると見れるかと思います。おそらくですが。 では人間っぽくふるまうにはどうしたらよいか調べた中で書いてみます。 一応言語はpythonを使います。他の言語でもできるかと思うので参考程度にはなるかと思います。 Pythonでのスクレイピング基礎 一般的にpythonでのスクレイピングではrequestsモジュールを使います。他にもseleniumやpyppeteerなどがありますが、一旦requestsを使っていきます。 インストールはpipを使います。 pip install requests もしpythonのバージョンなどで分けてる場合はこちら py -3.12 -m pip install requests インストールが終わったらアクセスしてみましょう。今回は私のサイトにアクセスしてみます。 import requests response = requests.get('https://xainome.blog/’) print(response.text) こうするとHTMLの中身を取得することができます。 そこから取得したい情報があればBeautifulSoupを使って要素を取り出してみましょう。まずはインストール pip install beautifulsoup4 実際のアクセスとHTMLの解析 インストールができたらHTMLを解析します。 from bs4 import BeautifulSoup soup = BeautifulSoup(html_parse, 'html.parser') これで解析の準備ができました。解析の話は本題とそれますのでここまでにしようと思います。 解析やHTMLの情報取得に興味があれば調べてもいいですし、生成AIに聞いてみるでもいいと思います。このようなコード、銘柄、市場などが一覧で取得することができます。もちろんAPIを使うという手もありますが。 リクエストヘッダーの設定 実は通常のリクエストを送る場合ユーザーではなく、言語別のリクエストを送っていることになります。 リクエストにはRequests Headersというものが設定できます。これは私たちがPCやスマホでサイトにアクセスするときも送信されています。 まずは設定してみます。 headers = { 'User-agent' = 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Mobile Safari/537.36' } response = requests.get(search_url, headers=headers) こんな感じで設定します。特に何も設定しなかった場合、‘python-requests/2.25.1’という設定で送られるみたいです。恐らくjsやGoとかでも似たような設定になるかと思います。 ...

2024年8月30日

PrefectとBigQueryを使っているので現状やったことを書いてみる

副業でのPrefect CloudとBigQueryの使用 副業でPrefect CloudとBigQueryを使っているので触った点と書いてみようと思います。 環境の設定とインストール 私はWindowsを使っています。契約を結んでいる企業の導入手順がMacで書かれていたのでそこもいろいろ調べてやってみました。 Prefectとは? そもそもprefectとは何ぞや?というところですね。prefectはPythonベースのワークフローエンジンになります。 pythonジョブの実行を自動化したりデバッグしたりする機能をpythonコードで書けるシステムになります。 AWSだとStepfunctionのイメージに近いですね。それに加えてEventBridgeやCloud Watch Logsが足されたような感じです。 おそらくAWSやGoogle Cloudに比べてコストが低く、使いやすいという点で採用されたと考えられます。 Prefectの参照しているドキュメントはこちらです。ちなみに3.0がリリースされたみたいなのでそちらのドキュメントはこちらになります。 インストール手順 一応pythonをインストールしている前提でお話しします。 まずはprefect cloudのインストールを行います。 pip install prefect 次はタスクを実行するためのコマンドが必要になります。ただ、Windowsにはパッケージ管理ツールがありません。 なくても問題ないですが、せっかくなので導入してみます。今後パッケージを入れるときは活用していきたいです。 Scoopの導入 今回使ったパッケージはscoopになります。手順はサイトにあるのでコマンドプロンプトに入力します。 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser デフォルトでmainがありますが、もしバケットを別にして管理したい場合は以下のコマンドを使います。 # バケットの追加 scoop bucket add extras # バケット一覧 scoop bucket list # インストール一覧 scoop list 今回はtaskだけ必要なのでmainに入れました。これでtaskコマンドが使えるようになります。 Prefectの設定と実行 ただ、taskを実行するにはTaskfile.yamlが必要になります。中身はプロジェクトによりますが私がやったのはこんな感じ。全部ではないですが… tasks: start-local: cmds: - pip install -r requirements.txt - prefect config set PREFECT_API_URL=http://127.0.0.1:4200/api - prefect server start start-local-agent: cmds: - prefect config set PREFECT_API_URL=http://127.0.0.1:4200/api Taskfile.yamlの準備が出来たらターミナルの用意します。 ...

2024年8月23日