Python関連のことを調べてみた

Python関連のことを調べてみた
目次

Pythonで自動作曲: pydubを使ったシンプルな楽曲生成

## はじめに

音楽制作の世界にAIや自動化の波が押し寄せています。本記事では、Pythonとpydubライブラリを使用して、シンプルながらも興味深い自動作曲システムを構築する方法を紹介します。

基本的な音楽理論と、pydubの機能を組み合わせることで、簡単な楽曲を自動生成できるようになります。この記事を通じて、プログラミングと音楽の融合の可能性を探ってみましょう。

## 準備

まず、必要なライブラリをインストールします:

“`bash
pip install pydub numpy
“`

pydubはオーディオ操作のために、numpyは数値計算のために使用します。

また、pydubはFFmpegに依存しているので、事前にFFmpegをインストールしておく必要があります。

## 1. 基本的な音の生成

まずは、単純な正弦波を使って音を生成する関数を作成します。

“`python
import numpy as np
from pydub import AudioSegment
from pydub.generators import Sine

def gen

元記事を表示

Python pydubで音響効果を追加: エコー、リバーブ、ピッチシフトの実装

## はじめに

音声編集において、エコー、リバーブ、ピッチシフトなどの音響効果は非常に重要です。これらの効果を適切に使用することで、音声や音楽に深みや臨場感を与えることができます。本記事では、Pythonのpydubライブラリを使用して、これらの音響効果を実装する方法を紹介します。

## 前提条件

この記事は、pydubの基本的な使い方を理解していることを前提としています。まだpydubをインストールしていない場合は、以下のコマンドでインストールしてください:

“`bash
pip install pydub
“`

また、一部の効果にはnumpyを使用するので、以下のコマンドでインストールしてください:

“`bash
pip install numpy
“`

## 1. エコー効果の実装

エコーは、元の音声が遅延して繰り返される効果です。pydubを使用して簡単なエコー効果を実装できます。

“`python
from pydub import AudioSegment

def add_echo(sound, delay, num_echos, decay)

元記事を表示

Python pydubマスター: 音声の切り取り、結合、フェードイン/アウトの技法

## はじめに

pydubは、Pythonで音声処理を行うための強力なライブラリです。基本的な操作を習得した後は、より高度な技法を学ぶことで、音声編集の可能性が大きく広がります。この記事では、pydubを使用した音声の切り取り、結合、フェードイン/アウトなどの高度な技法を紹介します。

## 前提条件

この記事は、pydubの基本的な使い方を理解していることを前提としています。まだpydubをインストールしていない場合は、以下のコマンドでインストールしてください:

“`bash
pip install pydub
“`

また、pydubはFFmpegに依存しているため、FFmpegがインストールされていることを確認してください。

## 1. 音声の切り取り

pydubでは、音声の一部を簡単に切り取ることができます。以下に、いくつかの切り取り技法を紹介します。

### 1.1 特定の時間範囲を切り取る

“`python
from pydub import AudioSegment

# 音声ファイルを読み込む
audio = AudioSegment.from_fi

元記事を表示

Python pydubで音声ファイルを操作しよう: 基本的な読み込みと保存

## はじめに

音声ファイルの操作は、多くのプログラミングプロジェクトで必要となる重要なスキルです。Pythonには、この作業を簡単に行えるライブラリがいくつかありますが、今回は特に使いやすさと機能の豊富さで知られる`pydub`を紹介します。

この記事では、`pydub`を使って音声ファイルを読み込み、操作し、保存する基本的な方法を解説します。

## 環境設定

まず、`pydub`をインストールしましょう。以下のコマンドをターミナルで実行します:

“`bash
pip install pydub
“`

注意: `pydub`は内部で`ffmpeg`を使用します。もし`ffmpeg`がインストールされていない場合は、[FFmpegの公式サイト](https://ffmpeg.org/download.html)からダウンロードしてインストールしてください。

## 音声ファイルの読み込み

`pydub`では、`AudioSegment`クラスを使用して音声ファイルを読み込みます。様々な形式の音声ファイルに対応しています。

“`python
from pydub i

元記事を表示

ChatGPTで株のポートフォリオ最適化スクリプトを作った

# 目的
ChatGPTで株のポートフォリオ最適化スクリプトを作ってその実力を確かめました。

今回はモンテカルロシミュレーション手法とブラック・リッターマン手法の2つを試してみました。結果からするとモンテカルロシミュレーションの方が、時間はかかるがもっともらしい結果を出しました。ブラック・リッターマンはかなり偏った結果になってしまった。多分選ぶ銘柄とか期待値の設定とかで大きく変わるのだと思う。

# 解析手法(解説 by ChatGPT4o)
::: note info
## 簡単に言うと
– **モンテカルロ・シミュレーション**は、大量のシナリオを生成してリスクとリターンを評価する手法であり、主に確率論に基づいています。
– **ブラック・リッターマンの手法**は、投資家の見通しと市場データを組み合わせて資産の期待リターンを推定し、それに基づいてポートフォリオを最適化する手法です。

## モンテカルロ・シミュレーション
モンテカルロ・シミュレーションは、確率論と統計を用いてポートフォリオの将来のパフォーマンスを予測する手法です。この手法は、大量のシナリオを生成し、それらのシナリ

元記事を表示

【Aidemy成果物】グロサリー商品の今後の消費高の予測

■ はじめに
現職で所属する部署において需要予測を行っており、今まで勘と経験に頼った予測部分があったため、可能な限りデータに基づいて意思決定・予測ができるようになるため受講を決断いたしました。
業務との並行のため、ぎりぎりになりましたがなんとか成果物を作成できたのはAidemyさんのご協力のおかげです。ありがとうございました。

データ分析初学者のため、記載内容に誤りがあった場合はご容赦願います。
※このブログはAidemy Premiumのカリキュラムの一環で、受講修了条件を満たすために公開しています。

■ 概要
・将来の売上げ予測(金額)
・活用データ:e-Stat(全国(二人以上の世帯限る)グロサリーカテゴリーデータ(加工済み))
・データの特徴確認
・特徴から実装モデルを選定
・モデル構築
・グラフ化

■ 実行環境
Google Colab

■ 手順
1 必要なライブラリをインポート

“`
import warnings
import itertools
import pandas as pd
import numpy as np
import statsmodels

元記事を表示

【競プロ】ダイクストラ法を正確に書く(O((M+N)log N) のつもりが Θ(N^2 log N) になっていた話)

## はじめに

競技プログラミングをやっている高校生のButterFlvです!!内容はタイトルにある通りです。[トヨタ自動車プログラミングコンテスト2024#7(AtCoder Beginner Contest 362)](https://atcoder.jp/contests/abc362) の [D – Shortest Path 3](https://atcoder.jp/contests/abc362/tasks/abc362_d) でダイクストラ法の実装が不完全であったためTLEしてしまったのでちゃんとダイクストラできるために書きます。

## ダイクストラ法について

**ダイクストラ法**はBFSの拡張で動的計画法の一種です。単一の始点からの距離を各頂点について高速に求めることができます。使える条件は

* 負のコストの辺を持たない

です。頂点の数を $N$ 辺の数を $M$ として大体、ナイーブ $O(N^2)$ でpriority queueを使うと $O((M+N)\log N)$ です。

## 疑似コード

頂点に $0,1,2,\cdots ,N-1$ と

元記事を表示

WSL2を使用してLinux(Ubuntu)上にPython環境を作成してみる

## 目的:Python 実行環境の構築

元々はWindows10環境下にてPythonを使っていましたが、新規PCへの移行に伴い、環境構築をすることになりました。
せっかくなのでPandasの高速化(?)ライブラリである[fireducks](https://fireducks-dev.github.io/ja/)などを使用してみたく、今回の内容を実施しました。

### 使うもの
– Windows10
– WSL2
– Linux
– Ubuntu-24.04
– Python
– 3.7~3.13
– VisualStudioCode
– 1.91.1

# 1. WSL2のインストール

– 管理者権限でPowerShellを開く
– 以下のコマンドを実行してWSLをインストールする

~~~
wsl –install
~~~

– コンピューターを再起動する。
– 再起動後、Ubuntuが自動的に起動する
– ユーザー名とパスワードを設定する
– **パスワード入力時、画面には表示されない**

### **WSLが起動できな

元記事を表示

「Python 3 エンジニア認定実践試験」合格体験記

# はじめに
Python 3 エンジニア認定データ分析試験を受験、合格したので体験記を残していく。

# 受験勉強前のスペック
「Python 3 エンジニア認定基礎試験」を取得済。
仕事でNumpy, Pandas, Matplotlibは触っている。

# 勉強方法
試験1週間前からひたすら模擬試験をループする。
以下のそれぞれの試験を1~2周まわしていく。
わからない機能が出てきたらその都度調べていく。

– ExamApp(https://python-basic.com/)
– ディープロ(https://diver.diveintocode.jp/dive_into_exam)

# 結果
800 / 1000点で合格。
Magicmockあたりはもう少し勉強してもよかったかも。

元記事を表示

OpenSeesPyによる建築構造解析の基礎3

# OpenSeesPyを用いた1質点系の時刻歴応答解析その1
:::note warn
このページに掲載されている内容によって生じた損失や損害に対して一切責任を負いません.
もしコードの誤りなどありましたらご連絡ください.
:::
この記事では,OpenSeesPyを用いた1質点系の弾性時刻歴応答解析を実装する方法について解説します.

## 1. 例題
今回考える問題は次の通りです.地面につながれた節点1,質量$M = 200 \mathrm{kg}$の質点がある節点2がヤング率$E = 205000\mathrm{N/mm^2}$,断面積$A = 200\mathrm{mm^2}$の部材でつながれています.さらに,減衰定数$h=0.05$のダンパーがついています.この時地面に地震動が作用した時の質点の動きを時刻歴応答解析を用いてシミュレーションします.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3793915/ae354ee9-ed00-5eb6-a524-f100b18b2f

元記事を表示

二次元フーリエ変換と画像処理

# はじめに
[こちらの参考書](https://qiita.com/bokuikkun/items/1beb699d4eb9413e6038)のDynamic Mode Decompositionの第二章、Fourier and Wavelet Transformsの個人的備忘として投稿。
本稿は2.7節のTwo-Dimensional Transforms and Image Processingについて記述する。

# 概要
[前回記事](https://qiita.com/bokuikkun/items/ac7f178e0b545990b000)までは、1次元の信号に対してフーリエ変換とウェーブレット変換を考えてきたが、これらは簡単により高次元空間へと拡張できる。例えば、2次元変換や3次元変換などがそれに勿論該当するのだが、これらは画像処理や圧縮の分野でよく使われる手法となっている。

# 画像データに対する2次元フーリエ変換
画像データ$\boldsymbol{X}\in\mathbb{R}^{n\times m}$に対する2次元フーリエ変換は、まず全ての行に対し、1次元フー

元記事を表示

Pythonで厳密な型付けをするということはどういう事なのか

## はじめに
おはようございます、しなもんです。

Pythonは、その簡潔さと柔軟性を生かすため
基本的に**動的型付け言語**として設計されています。

動的型付けとは、**変数の型が実行時に決定**され、**必要に応じて変更**できることを意味します。
そのため、割と無茶なコードが通ったりすることがあります。

“`python
x = 5 # xは整数型
x = “Hello” # xは文字列型に変更可能
“`

**めちゃくちゃです。**

一方、静的型付けは変数の型を事前に宣言し、コンパイル時にチェックする方式です。
これにより、型関連のエラーを早期に発見できます。

単純にエラーが発生する可能性がめちゃくちゃ増えるので面倒くさそうですが、
しっかり動作するプロダクトを作る上では非常に大切な考え方であるわけです。

そこでPythonは、バージョン3.5から型ヒント(Type Hints)を導入しました。
これにより、**動的型付け言語でありながら、静的型チェックの恩恵を受けられる**ようになりました。

“`python
def greet(name: str

元記事を表示

DiscordのBOTを作ってみよう(2) ~はじめてのBOT制作~

# はじめに

このシリーズはPythonおよびPycordでDiscordのBOTを作ってみたいという方に向けたものです。
前回の記事を読んでからこの記事を読むことを勧めます。

前回 → [DiscordのBOTを作ってみよう(1) ~準備編~](https://qiita.com/Quantum8060/items/43b3429d5c028cf106aa)

:::note warn
この記事ではVisual Studio Codeを使って説明します。
他のエディタでは操作手順等が異なる場合があります。
:::

:::note info
筆者の環境
・Windows11 Pro
・Python 3.10
・pycord 2.5.0
・Visual Studio Code
:::

# (5)コードを書いていく
それではいよいよBOTを動かすためにコードを書いていきます。

今回は「hello」と入力すると「hello!@ユーザー名」と帰すものを作っていきます。
ユーザー名のところには「hello」と入力したユーザーの名前が入ります。

まずは、BOTを動かすためにPyth

元記事を表示

ウェーブレット変換の概要

# はじめに
[前回の記事](https://qiita.com/bokuikkun/items/0f8a36e6240f24602e27)の続き。
本稿では、みんな大好きウェーブレット変換について記述する。

# 概要
Waveletsはフーリエ変換の概念をより一般的な直交基底へと拡張し、多重解像度分解を用いることで、部分的に不確定性原理を克服した。さらにウェーブレット変換にも高速計算アルゴリズムが存在し、高次元データへの拡張性を持っている。本稿では、連続ウェーブレット変換を導入し、離散ウェーブレット変換のハイレルな概要をまとめた。

# ウェーブレットと多重解像度解析
ウェーブレット解析の基本的な概念は母ウェーブレットと呼ばれる関数$\psi(t)$から始まる。スケール変換の係数を$a$、平行移動の係数を$b$として、次のように母ウェーブレットから異なる一連のウェーブレットを生成することを考える。

“`math
\begin{align}
\psi_{a,b}(t)=\frac{1}{\sqrt{a}}\psi\left(\frac{t-b}{a}\right)
\end{al

元記事を表示

【Streamlit】PydeckのHexagonLayerを使用してもマップ上に3D棒グラフが表示できない理由と解決策

# 前置き
こんにちはデータエンジニアの山口歩夢です!

こちら基本的な内容から実践的な内容、自分が開発する上で躓いたポイントやTipsなどを書かせていただいているStreamlitの入門書です。

電子版が技術書典にて購入可能なため、是非チェックいただけると幸いです。

https://techbookfest.org/product/t5GBwbFm4kUhXrTPkGpAnY?utm_source=twitter&utm_medium=social&utm_campaign=share

# 本題
Streamlitには、`st.pydeck_chart`と言うPydeckライブラリで作成した図を、地図上に表示させることができる関数が用意されています。

公式ドキュメントに紹介されているような、地図上に3Dグラフが表示されるアプリケーションを作成したいと思い、ドキュメントを真似しながらアプリケーションを構築してみたのですが、なかなかうまくいきませんでした。

その時の解決策を共有させていただきます!
以下が公式ドキュメントで紹介されている図で、こういった3D棒グラフを日本地

元記事を表示

ABC362回答メモ

# 0.はじめに
 最近下降気味の成績を挽回するべく参加。
 結果はC問題すら解けない惨憺たる成績。
 C問題も振り返ればそこまで難解ではなく
 レートは-38で737と茶色安定のこの頃です。

# 1.A – Buy a Pen
 A問題ながらちょっとひねった問題。
 といっても、素直に言われた通りの実装すれば
 迷うことはありませんでした。
 Cで指定される色以外の2色の値段のうちminで小さい方を
 出力して終了として、ACでした。

 https://atcoder.jp/contests/abc362/submissions/55513491

# 2.B – Right Triangle
 後から解説をみたら、三平方の定理を使って直角を求める方法が
 紹介されていましたが、コンテスト時は思いつきませんでした。
 
 昔使った(ググって拾って来た)、3点の角度を求める方法で
 角A~Cの角度を求めていずれかが90°だったらYes
 そうでなければNoを出力して終了としました。

 https://atcoder.jp/contests/abc362/submissions

元記事を表示

Pythonのクラスされた生成されたオブジェクトが破棄されるタイミング:オブジェクトの寿命とガーベジコレクションの真実

# Pythonオブジェクトの寿命:スコープとガーベジコレクションの真実

Pythonでクラスからオブジェクトを作るとき、「スコープから外れたら消える」と思っていませんか? 実は、必ずしもそうとは限りません! オブジェクトの寿命を握るのは **参照カウント** と **ガーベジコレクション** です。

## スコープから抜けたら破棄されるんじゃないの?

一見、スコープとオブジェクトの寿命は関係ありそうですが…
以下は、スコープを抜けた場合のオブジェクト破棄の単純な例です。

“`python
class SomeClass:
def __init__(self):
print(“Instance created”)

def __del__(self):
print(“Instance destroyed”)

def func():
obj = SomeClass() # SomeClassのオブジェクトを作成
print(“Inside the function”)

func()
# “Instance c

元記事を表示

Amazon BedrockのCode Interpretationの実行環境に思いをはせる

:::note info
Agents for Amazon Bedrock の Code Interpretation は 7/14 時点で Preview 中の機能です。将来的に動作や仕様が変更される可能性があります。
:::

## はじめに
Code Interpretation は Agents for Amazon Bedrock に追加された新しい機能です。ユーザーが要求したタスクを実行するためのコードスぺニットを安全なサンドボックス環境で生成、実行し、結果を提供します。

詳細は以下の記事が参考になります。

https://qiita.com/moritalous/items/50aa76ea4c65841eed45

## 実行環境の調査
安全なサンドボックス環境とはどんな環境なんでしょう。恐らく独立したコンテナ環境等と推測されますが、 Code Interpretation さんにお願いしていろいろ情報を確認してみました。

### 基本情報
プロンプト
“`
platform モジュールで実行環境の情報を表示して
“`

Code Interpretatio

元記事を表示

abc362-Cを解いてみました

## 問題
– ある整数$X_i$の上限$R_i$と下限$L_i$が各$i$について与えられる
– このとき,$\sum_i^n X_i = 0$となるような組み合わせの有無を出力
– あるときは’Yes’と解答例1つを出力
– ないときは’No’を出力

## 解法
– $A = \sum_i^n X_i$の上限と下限を出す
– $m = \sum_i^n L_i$,$M = \sum_i^n R_i$とする
– $m \leq A \leq M$
:::note info
$m > 0$または$M < 0$のときは,'Noを出力' ::: ### ポイント1: 最大値(最小値でも可)を常に取り続けると考える - $X_i$として最大値$R_i$を常に取り続けると,$A = M$ :::note info このままでは$A = 0$を達成できない ::: - そこで,どこかの$i$で$X_i = R_i - M$となるような$X_i$を選ぶことができれば,残りの$X_i$で常に最大値をとることで$A = 0$を実現可能 :::note warn $R

元記事を表示

彼女を励ますために、Azure OpenAI Serviceでくまきち(kmakici)LINE botを作った #2

# はじめに
GPT-4oがOpenAIから発表され、Azure OpenAI Serviceにも搭載されました。LLMのマルチモーダル化が益々進むと思われます。

そこで、彼女を励ますために作った「くまきち(kmakici)LINE bot」をGPT-4oを使って進化させることにしました。

#1の記事は以下になります。

https://qiita.com/banquet_kuma/items/2c77db8407fab99a09c6

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/318960/cbf3fb66-a373-03dd-5ad8-5f1c29f13fe7.png)

# 目次
– [Ver Upの内容](#ver-upの内容)
– [画像説明の仕様について](#画像説明の仕様について)
– [会話履歴の保存方法](#会話履歴の保存方法)
– [GPT-4oについて](#gpt-4oについて)
– [システム構成](#システム構成)
– [利用サービス一覧](#利用サー

元記事を表示

OTHERカテゴリの最新記事