consult-lineのmigemo化に向けた試作

consult-lineはswiperの代替として便利に使える。これをmigemo化したいということである。 プロンプトに続いて検索したい日本語を「ローマ字読み」入力すると、それをもとにconsult-lineが走るという、単純なラッパーである。 (defun consult-line-migemo ()…

selectrum/consult/marginaliaの設定

ivy/counsel系の代替として、selectrumやconsultが最近来ている。特徴をまとめた方がいる: selectrum … ivyに対応。ivyよりも実装はシンプル。 consult ... counselに対応。counselにはないユニーク機能を持つコマンドを提供したり。consult-bufferはその例…

AdaCosのPyTorch実装にまつわるバグ

深層距離学習の一つであるAdaCosはとても有効である。 PyTorch実装も利用できる。 github.com ところがこの実装には(2021/04/24時点)、使い方を間違えるとNaNが頻発する不具合がある。 forward関数内でscaleをadaptiveに更新しているのだが、学習データの…

ivy/swiperをmigemo化した際に遭遇したエラーの解決と新たなminor-modeの提案

はじめに avy-migemoを使わずにswiperやswiper-isearchをmigemo化することに成功した偉大な先人がいる:これらの記事では、ivyに食わせるmigemo的な正規表現を生成する関数を独自に定義している。 そして、これらの設定を適用したのち、swiper-isearchを実行…

LaTeXソースを保存と同時にコンパイルしPDFを作成するための設定(smart-compile.elとlatexmk利用)

以下の記事にて、表題に関する設定が公開されていた。「自動コンパイル」のところである。 AUCTeX の設定と便利な機能 銭谷誠司氏のサイトにて公開されているsmart-compile.elを用いている。上記の記事ではリンク切れであったが、現在はgithubにて継続的に開…

マウスホイールによる連続スクロールのスピードを調節 on Emacs

マウスホイールにより連続スクロールすると画面がどんどん飛んでしまうので、それを抑制する設定。 Ubuntu (global-set-key [mouse-5] '(lambda () "" (interactive) (scroll-up 1))) (global-set-key [mouse-4] '(lambda () "" (interactive) (scroll-down …

summarye.elの設定 改訂版

かつてsummarye.elの設定に関する記事を書いたことがあるが、今回いくつか見直した。 display-line-numbers-modeによる行番号の表示を止めた。これをしないと行番号がsummarye由来ものと合わせて2重に行番号が表示されるからである。またサマリがポップアッ…

EmacsにおけるLaTeX執筆環境構築(2)LaTeXのlanguage serverであるtexlabをeglotから使う

はじめに LaTeXにもlanguage serverがあると聞いて、早速インストールを試してみたときの記録。そのlanguage serverとはtexlabである。これをEglotによりEmacs上から使うのが目的である。 実行環境 MacOS Catalina 10.15.7 Ubuntu 22.04 Emacs 28.2 手順 tex…

EmacsにおけるLaTeX執筆環境構築(1)AUCTeXの設定と使い方について

Emacs上でLaTeXを編集するときに便利なパッケージの一つとしてAUCTeXが知られている。本記事は設定と使い方を備忘録として残すのが主旨である。 TeXのインストール AUCTeXのインストール 設定 Emacsの設定 latexmkの設定 解説と補足 AUCTeXの公式情報 AUCTeX…

Emacs27で"Package cl is deprecated"を抑制する方法

起動直後 early-init.elの先頭に以下を記述する。 (setq byte-compile-warnings '(cl-functions)) 設定ファイルなどをバイトコンパイルするとき 以下の設定を追記する。 (eval-when-compile (setq byte-compile-warnings '(cl-functions)))

Emacsで補完入力を行うCompany-modeの設定 2021

はじめに Emacsで補完入力を行うためのパッケージとしてcompany-modeがよく知られている。 本記事ではこの設定を紹介し、備忘録として残しておく。 設定 以下の設定を適用する。 コードを表示する ;; -*- mode: emacs-lisp; coding: utf-8 ;; 主なデフォルト…

EmacsからJupyter Notebookを触るための設定

はじめに Emacsのeinというパッケージを用いることで、EmacsからJupyter Notebookを編集し、表示することができる。 実行イメージは以下の通りである。ein(emacsからjupyter)は便利なのでぜひ pic.twitter.com/yBeAucc1n7— mat (@ballforest) August 21, 2…

EmacsでPythonを書く設定 2021

はじめに PythonまわりのEmacsの設定を整理したということ。Company-modeの設定は言語共通の部分が多く長くなるので省略した。Language serverの紹介がメイン。 ※最新の設定は2022の記事に tam5917.hatenablog.com Language server Emacsからlanguage server…

Griffin-Limアルゴリズムの実行時間をlibrosaとtorchaudioで比較してみた話

はじめに 音声の振幅スペクトルから位相を推定し、元の音声を復元するためのGriffin-Limアルゴリズムが知られている。 Griffin-Limアルゴリズムはlibrosaパッケージとtorchaudioパッケージの両方に実装されている。 librosa librosa.org torchaudio pytorch.…

音声認識結果を音声合成するPythonスクリプトをSpeechRecognitionとPyOpenJTalkで書いたみた話

はじめに かつて、音声認識と音声合成を組み合わせて遊んでみるという主旨の記事を書いたことがある。 tam5917.hatenablog.com 音声合成には、コマンドラインから音声合成できるOpenJTalkパッケージを用いたのだった。これをPythonから動かす場合には、専用…

torchaudioとtorchlibrosaの実行速度に違いはあるのか?

はじめに PyTorchには音声系データを処理するのに便利なtorchaudioというライブラリが存在する。 pytorch.org一方、音声系データの処理に便利なlibrosaというパッケージが存在する。 librosa.orgさらにtorchlibrosaという、librosa内部の行列計算まわりをPyT…

black用py-isortの設定

私はblackをpythonコードのformatterに用いているので、blackの仕様に合うようにisortを設定して動かしたいというわけである。isortをEmacsから触るためにはpy-isortを用いる。以下の記事は参考になる。 qiita.com isortのマニュアルはこちらから: pycqa.gi…

numpy.arange関数におけるstepに0.1を指定したときの振る舞いとその原因を追ってみた話

はじめに 先日、接点QB氏による以下のツイートを見かけた: ??????俺の脳みそがバグってるのか?? pic.twitter.com/zyzzdb3ijS— 接点QB (@setten_QB) February 10, 2021 興味深いので少し調べてみたというわけである(少々長い記事)。 はじめに numpyのara…

vscodeのメモ

ターミナルの表示およびカーソル切り替えはCommand + Shift + @ ターミナルを閉じる場合はControl + Shift + @ (ターミナルにフォーカスされている場合) サイドバーを閉じる場合はControl + Option + Space (Toggle Sidebar Visibility)

わかりやすいパターン認識(第2版)の書評

本書は1998年に発売された『わかりやすいパターン認識』の改訂版であり,全体を通して統計的パターン認識の基礎が「わかりやすい」筆致でまとめられている。本書は全9章から構成されている。パターン認識の考え方(第1章)から始まり,識別関数の学習・評価…

現在開いているページのewwバッファを複製する

ewwを起動中、以下の関数を実行する。 すると、現在のページのURLを引き継いで新しくewwバッファが作成される。 (defun eww-duplicate-buffer () "Duplicate current eww buffer." (interactive) (let ((url (plist-get eww-data :url))) (with-current-buff…

リージョンをクオートやブラケットで囲う(Emacsのselected.elを利用)

以下の記事を参考に、リージョンを{クオートやブラケット}で囲うelispをselectedを使って書いてみたということ。 リージョンを選択し、クオートやブラケットの記号を一つ押すだけで、リージョン全体が囲えるので便利である。selected.elはMELPAからインス…

リージョンで囲った文字列を対象にgoogle翻訳を呼び出す(Emacs)

以下の記事では、「selected」という、リージョンで囲われた文字列を対象に様々な関数を1キーストロークで発動できるパッケージの紹介がされている。 同記事では対象の文字列に対してgoogle検索を呼び出す方法も紹介されているが、ここではgoogle翻訳を呼び…

ewwを使っていたら「error in process filter: Invalid image type ‘svg’」というエラーが出たとき

ewwでリンク先のページに飛んだ時、表題のエラーに出会うことがある。 これはEmacsがsvgをサポートする形でコンパイルされていないから、ということ。 しかしeww(というかshr)はsvgが使える前提で一部の関数が実装されているのが問題。 当面、以下の関数を…

Emacsの補完入力手段

よく使うもの hippie-expand (M-/) completion-at-point (C-M-i) company デフォルトだとC-M-/ にdabbrev-completionがバインドされているけど、それほど使わない。

第2弾:Waveデータに対するLSB置換法に基づくステガノグラフィ by Python (バグ修正済)

表題の通り。今回も外部パッケージの力を借りてLSB置換法に基づくステガノグラフィを試してみた。 参考にしたのは以下のリポジトリである(Steganography/stego_lsb)。 リトルエンディアン環境で正常に動作するよう、バグを修正したPythonコードを以下に置い…

ヒルベルト変換のデモスクリプトをPythonで書いた話

表題の通りのまさに備忘録。音声波形をヒルベルト変換して包絡および瞬時位相を計算し、そこから元の音声波形を再構成するスクリプトをPythonで書いた話。SPTKに付属のdata.shortをwavに変換して用いた。発話内容は「青い植木鉢」である。処理の核となるのは…

フーリエ級数展開のデモンストレーションをPythonで書いた話

はじめに 東京大学の小山先生が、フーリエ級数展開のデモンストレーションをMATLABでお書きになった。講義でフーリエ変換というかフーリエ級数展開の説明用に作った動画をせっかくなのでここに置いておく。。 pic.twitter.com/2wm4ecjdty— Shoichi Koyama (@…

navi2chの設定

事前準備 1. 2chproxy.plをダウンロードして、適切な場所に置く https://github.com/yama-natuki/2chproxy.pl2. bash_profileに以下を追記 /path/to/2chproxy.pl -dnavi2ch起動前に2chproxy.plをバックグラウンドで起動しておくという主旨である。バックグラ…

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

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