python

位相スペクトルの有理関数近似に基づく位相復元手法(のプロトタイプ)をPythonで実装した

はじめに お待ちかね(?)の位相復元シリーズである. 手法の説明 記法を簡単にするため,ある特定の音声フレームに固定して考える.このフレームに関して, 位相スペクトル \( \phi(\omega) \) が有理関数で近似できると仮定する. ここで \( \omega \) は…

【Emacs】eglotでbasedpyrightを使う設定

basedpyrightをインストールしたうえでこうする。 (with-eval-after-load 'eglot (add-hook 'eglot-server-programs '(python-ts-mode . ("basedpyright-langserver" "--stdio")))) 最新のeglotにはbasedpyrightの設定もマージされているけども、Emacs 29系…

tqdmでprogressbar2相当のフォーマット指定をする場合

例えばこう書く。tqdmのbar_formatを少し調整すれば良い。 import time from tqdm import tqdm for _ in tqdm( range(5), desc="Your Description", bar_format="{desc}: {percentage:3.0f}% ({n_fmt} of {total_fmt}) |{bar}|" " Elapsed Time: {elapsed} E…

【Emacs】Pythonを書く設定2024下半期

Pythonを書くためのEmacsの設定は常にアップデートしている. reformatter および ruff-format をインストールする. これ以外にもtempelの設定もしてある.tempelについては以下の記事にて. 【Emacs】テンプレート用パッケージTempelの設定 - 備忘録 当然…

【Emacs】smartchrの設定 for Python

例えばこんな感じ。 (defun smartchr-keybindings-python () (local-set-key (kbd "=") (smartchr '(" = " " == " "="))) (local-set-key (kbd "+") (smartchr '(" + " "++" " += " "+"))) (local-set-key (kbd "-") (smartchr '(" - " "--" " -= " "-"))) (…

『Online Phase Reconstruction via DNN-based Phase Differences Estimation』に基づく位相復元をLJ speech dataset上で行った話

はじめに 本記事は前回記事の続編である. tam5917.hatenablog.com 前回記事では実験がJSUTコーパス上で行われたが(basic5000 & onomatopee300),本記事ではオリジナルの論文と同じくLJ speech dataset上で実験を行ったときの結果を記録として残すものであ…

『Online Phase Reconstruction via DNN-based Phase Differences Estimation』(IEEE/ACM TASLP 2023)に基づく位相復元手法をPythonで実装した

はじめに Masuyama氏らによる位相復元の論文が出版されている. Y. Masuyama, K. Yatabe, K. Nagatomo and Y. Oikawa, "Online Phase Reconstruction via DNN-Based Phase Differences Estimation," in IEEE/ACM Transactions on Audio, Speech, and Languag…

oct2py経由でPHASERETを使って位相復元を行うためのPythonスクリプトを書いた話

はじめに 位相復元を行うための MATLAB/GNU Octaveライブラリ の一つにPHASERETがある. ltfat.org このライブラリをoct2py経由でPythonから使えるようにしたサンプルスクリプトをいくつか整備したので,それらを紹介するのが本記事の主旨である. ちなみに…

重み付きRPUに基づく位相復元手法をPythonで実装した

はじめに 手法 実装 実験 音声の分析条件 実験結果 おわりに はじめに 前回の記事でRPUに基づく位相復元手法を実装した. tam5917.hatenablog.com 今回はRPUの後続手法「重み付きRPUに基づく位相復元手法」が提案されている下記の論文を参考に,Pythonで実装…

『Phase reconstruction based on recurrent phase unwrapping with deep neural networks』に基づく位相復元手法をPyTorchで実装した

はじめに 手法 実装 実験 音声の分析条件 実験結果 おわりに 追記 はじめに Masuyama氏らによる位相復元手法 "Phase reconstruction based on recurrent phase unwrapping with deep neural networks"が2020年に提案されている. https://ieeexplore.ieee.or…

von Mises分布DNNに基づく位相復元手法をPyTorchで実装した

はじめに 実装 実験 特徴抽出およびミニバッチ構築について 音声の分析条件 実験結果 おわりに 追記 はじめに 音声の位相復元という研究トピックが存在している.分野に不慣れな人はまず,矢田部先生の解説記事を読むことをおすすめする. www.jstage.jst.go…

PyTorch 版 Gated Linear Unit (GLU) のラッパー

はじめに PyTorchにもGated Linear Unit (GLU)は用意されているが,アフィン変換などの部分はGLUモジュールの外で書かないといけない."Linear" は一体どこへやら. pytorch.org なのでラッパーを書いたということ. ソースコード ここに置いた.畳み込みはC…

scipyの新しいShortTimeFFTを使って振幅スペクトルと位相スペクトルを描画した

はじめに Pythonで短時間フーリエ変換(STFT)を計算するためのツール(ライブラリ)の一つにscipyがある. scipyでSTFTを計算するための関数がstftであったが,最新版(v1.12.0)ではlegacyに位置づけられている. scipy.signal.stft — SciPy v1.12.0 Manua…

Conv1d の後段にBatchNorm1dではなくLayerNormを置きたいとき

GroupNormを使う. nn.BatchNorm1d(out_channels) から nn.GroupNorm(1, out_channels) への置き換えでOK.GroupNormの第1引数はグループ数であり,ここを1に指定するとLayerNormと等価になる. discuss.pytorch.org

音響(音声・音楽含む)分野のビギナー向けテキストやフリーソフトなどをまとめてみた

はじめに 読み物 広く浅く、やさしく学びたい 「音」関連のプログラミングに触れてみたい 一冊持っておくと重宝するかも ディープラーニング 信号処理 作曲に入門したい人 フリーソフト そのほか おわりに はじめに 音響分野のビギナー(学部生)が自習する…

音声パワーと基本周波数をリアルタイムでモニタリングするスクリプトをPythonで書いた話

はじめに 実装 おわりに おまけ はじめに 「音」の勉強を始めたビギナーにとっては、 そもそも音響関係のPythonモジュールを使ったプログラミングの経験も少ないだろうと思われる。 本記事はそのようなビギナー向けにプログラムの実例をひとつ提供するもので…

pesqパッケージのインストールにコケたときの話(Ubuntu 22.04)

音質を客観評価する際の指標の1つにPESQ(Perceptual Evaluation of Speech Quality)がある. Pythonで実装した方がいた. github.com 当方の環境はUbuntu 22.04.3 LTS (Jammy Jellyfish) であり,Pythonのバージョンは3.10.2である. pip経由のインストー…

PyODのバグフィックスをした

外れ値検知のためのPythonライブラリPyODがある。 最近、Kernel PCAにバグを見つけたので、修正のプルリクを出していたが、 無事にマージされた。 github.com

TensorFlow HubのSPICEを使ってメロディ推定するPythonスクリプトを書いた

表題の通り。 スクリプトではm4aを読み込むようにしているが、wavやmp3でもいけると思われる。 detect_melody_demo.py · GitHub

『Kernel Random Projection Depth for Outlier Detection』をPythonで実装した話

はじめに KRPDの中身 実験および実装 データセット 実装 実験結果 おわりに おまけ はじめに 最近,下記の論文がアップロードされていた. 『Kernel Random Projection Depth for Outlier Detection』 arxiv.org Pythonによる簡単なデモンストレーションを実…

"Differential Entropic Clustering of Multivariate Gaussians"をNumbaを使って高速化してみた話

はじめに 前回記事で実装した Differential Entropic Clustering をもう少し高速化したいなぁ,という話. tam5917.hatenablog.com 実装 やり方は簡単で,numbaをインストールして,@jit デコレータをBurg matrix divergence およびMahalanobis距離を計算す…

Differential Entropic Clustering of Multivariate Gaussians (NIPS 2006) をPythonで実装した

論文はこれ. proceedings.neurips.cc 多変量ガウス分布の平均と共分散行列の集合が与えられたときに,分布を単位として(=対応する平均と共分散をペアにして)クラスタリングするアルゴリズムが提案されている. 行列の距離を測るための"Burg matrix diver…

日本語x-vector抽出器により声優統計コーパスからx-vectorを抽出してUMAPで可視化した話

はじめに 最近,日本語 x-vector 抽出器がPyPIに登録された旨がツイートされた. M1中田くんが,日本語 x-vector 抽出 (音声に含まれる話者特徴をベクトルで表現してくれるもの) を pip で入るようにしてくれました.ご活用下さい.学習済みモデルがあるので…

Generalized Mahalanobis depth in the reproducing kernel Hilbert spaceをPythonで実装した話

はじめに 2011年に以下の論文が出版されている. Yonggang Hu, Yong Wang, Yi Wu, Qiang Li & Chenping Hou, "Generalized Mahalanobis depth in the reproducing kernel Hilbert space," Statistical Papers volume 52, pages 511-522 (2011). link.springe…

Kernel k-meansのコードを整理した

Mathieu Blondel氏によるKernel k-meansのPythonコードがあった。 Kernel K-means. · GitHub 上記のコードはPython 2系で書かれていたので、Python 3系で動くように整理した。 Kernel K-means. · GitHub 簡単なデモンストレーションを行うnotebookは以下の通…

PyODにコミットしたKernel PCAのコードのバグを修正した

PyODにおけるKernel PCAのコードは最近私がコミットしたものである。 ところで最近、PyODに以下のIssueが上がっていた。 github.com SUODでインスタンスを複製して使うときに、すべての引数がNoneとして与えられる現象が起きているようだ。 引数がNoneになる…

AIミュージックバトル!『弁財天』スターターキットのPyTorch版Google Colabノートブックを作った話

はじめに AIミュージックバトル!『弁財天』が配布しているスターターキットについて、PyTorch版を作成した記事を以前書いたことがあった。 tam5917.hatenablog.com その記事の段階では、Google Colabのノートブックを用意していなかったので、今回作ってみ…

Pythonによる並列処理の書き方(joblib および concurrent.futures)

joblibとconcurrent.futuresを使った並列処理の実現方法についてそれぞれメモを残しておく。Pythonによる並列処理の関連記事はいくらでも見つかるのだが、個人的な備忘録ということで。 想定している状況:処理対象となるファイル数が多いので、直列で処理を…

VOSKによるストリーミング音声認識の使い勝手を改善した話

はじめに 改善のヒント ソースコードと動かし方 特徴 おわりに はじめに Pythonで音声認識を実行するためのツールとして、最近はVOSKが少しずつ使われるようになってきた。その大きなメリットのひとつはオフラインで動作するという点である。 インストールも…

AIミュージックバトル!『弁財天』のスターターキットをPyTorchに移植してアドリブメロディの自動生成を試してみた

はじめに スターターキットについて スターターキットが提供するモデルの概要 実装 必要なパッケージ 実装の概要 メロディ生成実験 実験条件 実験結果 実装の舞台裏やTIPS、TensorFlow版との違いなど おわりに はじめに 最近、下記のイベントが開催されるこ…