Waveデータに対してLSB置換法に基づくステガノグラフィをPythonでやってみた

はじめに ステガノグラフィとは、秘密のメッセージを「ばれないように、こっそりと」隠す技術である。画像メディアに対するステガノグラフィのPythonパッケージは見つかるのだが、音メディア系はちょっと見当たらなかったので、試しにPythonで書いてみたとい…

Pyroomacousticsを使ってfastMNMF法に基づく音源分離を試してみた

概要 ブラインド音源分離手法の1つであるfastMNMF法が件のPythonパッケージに実装されているので、手元の音源で音源分離を試してみたということ。 スクリプト gist.github.com 結果 オリジナルの音源信号(ドラム) soundcloud.com オリジナルの音源信号(…

ヘルダーの不等式の証明をスケッチ

ヘルダーの不等式の証明はいつも忘れるので、備忘録として証明の「スケッチ」は残しておこうという主旨である(はてなブログにおける数式の練習も兼ねて)。 1. ヘルダーの不等式とは $1 \leq p \leq \infty$,$q$は$p$の調和共役とする.すなわち, $$ \fra…

Pythonの音声区間検出ライブラリ inaSpeechSegmenterを試してみた話

Pythonでいい感じの音声区間検出してくれるライブラリはないかなと探していたら、inaSpeechSegmenterというものが見つかったので使ってみた。 github.comデフォルトでは音声の区間、音楽の区間、ノイズの区間、無音の区間を検出し、その区間ラベルと時間情報…

spleeterを使って音源分離を試しただけ

はじめに 界隈で有名な、音源分離のためのPythonパッケージであるspleeterを使ってみたという話。 github.com 手順 事前にffmpegとlibsndfileはインストールしておく必要はあるとのこと。 https://github.com/deezer/spleeter/wiki/1.-Installation#using-pi…

Pyroomacousticsを使って部分空間法に基づく雑音抑圧を試してみた

概要 Pyroomacousticsというパッケージを使って部分空間法に基づく雑音抑圧をやってみた。 Pythonスクリプト gist.github.com 結果 元の音声 soundcloud.com 雑音入りの音声 soundcloud.com 雑音抑圧後の音声 soundcloud.com雑音を大きく削れば、それだけ元…

Pyroomacousticsを使って雑音抑圧(スペクトルサブトラクション法)のバッチ処理を試してみた

概要 Pyroomacousticsというパッケージに同梱のJupyter notebook(下記リンク)を参考に、スペクトルサブトラクション法に基づく雑音抑圧をバッチ処理的にやってみただけである。ノートブックのほぼコピペなので新しいところはない。 nbviewer.jupyter.orgPy…

oct2pyを使って独立低ランク行列分析の音源分離デモ(MATLAB)をPython上で動かした話

ブラインド音源分離手法の1つである独立低ランク行列分析(Independent Low-Rank Matrix Analysis; ILRMA)のデモスクリプトが、論文著者により公開されている。 github.com 上記スクリプトはMATLAB/Octave用の言語で書かれているが、oct2pyにより(無理や…

oct2pyを使ってMATLAB版legacy-STRAIGHTをPythonから呼び出す

音声の分析合成ツールの1つであるlegacy-STRAIGHTが公開されている。 github.comこのライブラリはMATLAB/Octaveで利用可能なm-fileとして書かれているため、Pythonからは利用できないと諦めていたのだが、最近、m-fileをPythonから起動できるoct2pyなるパッ…

counsel-switch-bufferとivy-switch-bufferの違い

counsel-switch-bufferは候補選択時に、バッファ内容のプレビューがデフォルトで有効になっている。 ivy-switch-bufferではプレビューはデフォルトで無効になっている。C-M-nやC-M-pで選択時にはプレビューが有効になる。 ;; 候補選択時、バッファプレビュー…

ivy-posframeの設定

ivy-posframeとは実行コマンドごとにivyのメニューの表示位置を調整できるパッケージだ。 github.com私の設定は以下: ;; コマンドごとに位置を制御できる ;; nilはivy-posframeの適用なし (setq ivy-posframe-display-functions-alist '((swiper . nil) (sw…

all-the-iconsの設定

ここではall-the-icons, all-the-icons-ivy, all-the-icons-diredをインストールすることを想定する。 各パッケージをインストール後、公式ドキュメントに従い、以下を実行する。 M-x all-the-icons-install-fontsそして設定: (require 'all-the-icons-ivy)…

ivy-richまわりの不具合

ivy-richのivy-rich--switch-buffer-root-and-filename の動作がどうも怪しく、ivy-rich-switch-buffer-pathで空の文字列が出力されるためにバッファのパスが表示されない。 なので、関数を再定義したというわけ。 (defun ivy-rich--switch-buffer-root-and-…

ノイズシェーピング量子化の記事

ノイズシェーピング量子化の勉強に使えそう。信号品質を保つディジタル化技術: ノイズシェーピング量子化・I 量子化とノイズシェーピングの基礎 link ・II ∆Σ変調器 link ・III 制御のための動的量子化器(1) link ・IV 制御のための動的量子化器(2) link ・…

frameの理論の解説記事

Life Beyond Bases: The Advent of Frames Life Beyond Bases: The Advent of Frames (Part I) Life Beyond Bases: The Advent of Frames (Part II)

selected.elの設定

selected.elの設定記事を見かけて、たしかに便利だということで、設定を書いてみたという話。 qiita.comリージョン選択時のテキストを対象にして各種のコマンドを発動できるので、とても便利というわけだ。以下ではmultiple-cursorsの設定やieditの設定、swi…

PyAudioとPySPTKで音声を逐次分析合成し続けるPythonスクリプト

表題のとおり。今回はPyWorldではなくPySPTKである。 フレーム化処理にlibrosaも必要である。 gist.github.com

summarye.elのバイトコンパイル時に警告が大量に出るので修正

オリジナルのsummarye.elはバイトコンパイル時に警告が大量にでるので修正した。 Warnings of summarye.el when byte-compiling has been removed (Emacs 26.2) · GitHub

summarye.elの設定

バッファのサマリを別ウィンドウに表示するパッケージsummaryeの設定。texの執筆時はセクション名を頭出ししてくれるので重宝する。texに限らず、プログラミング言語など汎用的に使えるので便利である。 (defun se/quit-summary-item () (interactive) (view…

electric-indent-modeの挙動

最近のEmacsではデフォルトでONになっている。 electric-indent-modeをON : C-jが改行、returnがインデントつき改行 electric-indent-modeをOFF : C-jがインデントつき改行、returnが改行

バッファ切り替えのためのiflipbの設定 / setting for iflipb to switch buffer

iflipbという、バッファ切り替えのためのパッケージが存在する: emacs.rubikitch.com私は以下の設定としている。 カレントバッファと同じメジャーモードのバッファのみを切り替え対象にしたいため、新たに関数を書いた。 (require 'iflipb) (setq iflipb-wr…

How to obtain list of buffers as same as current buffer

(defvar major-mode-same-buflist nil) (defun get-major-mode-list () (interactive) (setq major-mode-same-buflist nil) (let ((currbuf-major-mode (buffer-local-value 'major-mode (current-buffer)))) (dolist (buffer (buffer-list)) (if (eq (buffe…

How to obtain list of buffer names as same as current buffer

(defvar major-mode-same-buflist nil) (defun get-major-mode-list () (interactive) (setq major-mode-same-buflist nil) (let ((currbuf-major-mode (buffer-local-value 'major-mode (current-buffer)))) (dolist (buffer (buffer-list)) (if (eq (buffe…

How to obtain major mode of current buffer

You can obtain the major mode by using following snippet: (buffer-local-value 'major-mode (current-buffer))

C-TABでバッファ切り替え

Emacsのデフォルトパッケージbsに同梱されているコマンド、bs-cycle-nextとbs-cycle-prevを使う。 (global-set-key (kbd "C-<tab>") 'bs-cycle-next) (global-set-key (kbd "C-S-<tab>") 'bs-cycle-previous) 同様の機能はiflipbというパッケージによっても提供されて</tab></tab>…

Emacsにおいてカーソル下の単語をMacの辞書で調べるときのhack

関数の本体はどこかにあった設定を参考にさせていただいた。 my-dictが表題に沿った関数。my-dict2は自分で検索語句を入力する関数。 (defun my-dict () (interactive) (let ((url (concat "dict://" (read-from-minibuffer "Search: " (current-word)))) (b…

EmacsのFrame切り替えを補助するEmacs Lisp

表題について、以下のElispを見つけたので紹介する。frame-movementというパッケージである。 github.com本パッケージにより、'frame-movement/select-next-frame' (次のフレームに移動)と 'frame-movement/select-prev-frame'(前のフレームに移動)とい…

簡易ボイスチェンジャーのスクリプトを改良:PyQt5のスライダーによりピッチとフォルマントをリアルタイム調整する機能を追加

PyQt5のスライダーを使って、簡易版リアルタイムボイスチェンジャーのピッチとフォルマントを調整できるようにしたということ。スライダーのウィンドウを閉じれば終了する。 当初はTkinterを使う予定だったが、どうにもうまくいかなかったので、PyQt5にした…

簡易ボイスチェンジャーのスクリプトを改良:キー入力によるピッチの上下およびフォルマント調整機能

表題の通り。 前回の記事でキー入力を監視できるようになったので、特定のキーが押されたらピッチの上下('u' と 'd')、などの機能を追加したということ。 gist.github.com

PyWorldによる簡易ボイスチェンジャーのスクリプトを改良:キー入力で終了するようにした

以前の記事で紹介したPyWorldによるスクリプトは、実行を終了するときはCommand + Cなどの強制終了が必要だったが、あまりスマートなやり方ではなかった。 tam5917.hatenablog.comそこで、キー入力を監視して、特定のキー(ESC or 'q')が押下されたらスクリ…