たれぱんのびぼーろく

わたしの備忘録、生物学とプログラミングが多いかも

2021-10-01から1ヶ月間の記事一覧

コーパス: Libri-light

Libri-light は LibriVox から生成されたコーパス1. なので LibriSpeech の親戚2. Unlabelled Speech Training Set unlab-60k unlab-6k unlab-600 Dev and Test Set (totally same as LibriSpeech3) dev-clean: 5.4 hours dev-other: 5.3 hours test-clean: …

新時代の古典: WaveNet

今やニューラルボコーダは当たり前で、用途に合わせて多種多様. その原点、WaveNet. 今ではWaveNetそのものは使われないが、その根本的アイデアは当たり前レベルに普及し、モジュールも各所で使われている. いわば新古典であるWaveNetをいま振り返る. Summar…

生成モデルは過剰なのか?

生成モデル: サンプル分布全体を学習 生成モデルはかなり高等なモデル. ごく稀なサンプルのバラエティを含め、全てをモデリングしようとする. 生成モデルの実用時には分布の細部を無視したほうが結果が良いことが多々ある. => 生成モデルと"温度"パラメータ:…

生成モデルと"温度"パラメータ: レアなサンプルはぽいっ

生成モデルにはしばしば temperature パラメータが設定される. こいつが何で、何をして、どう便利なのかを解説する. tempered softmax Dahl, et al. (2017). Pixel Recursive Super Resolution. Parmar, et al. (2018). Image Transformer. "truncation tric…

Lockファイル生成と動かせない依存性

Lockファイルは依存性のバージョンを厳密に指定することで動作を保証することを目的とする. 依存性の中にはハードウェアとの兼ね合いで(動作は同じ)ハードウェア固有バージョンを要求する場合がある. この2つは噛み合わせが悪い. Lockで厳密に縛るとハード…

DNNのCPU推論実装

BLAS: Intel MKL, OpenBLAS MKL-DNN PyTorch TorchScript libtorchから呼び出せるJIT-compiled モデル. 最初の20ループくらいで最適化が走るっぽい (ref). Fused-opsとかいろいろ. BLAS PyTorchは pip install時のCMakeでBLASライブラリを自動検出して利用. …

Makefileの存在意義: 依存性に基づく実行管理

Makefileの目的はファイル更新日とファイル依存木に基づいた無駄のないレシピ/コマンド実行である. (Target, Prerequisites, Recipe) の3つ組を考える. make Target すると Prerequisites ファイルの更新を確認し、更新があれば Recipe を実行し、なければパ…

OmegaConf まとめ

API docs がないので、全体を見通せるリストとして. config <=> others I/O from empty (.create()) dictionary (.create({"key": "value"})) list (.create([1, 2, 3])) YAML string (.create("k1: v1 /n k2: v2")) YAML file (.load(path)) dot-list (.fro…

OmegaConf で validation

Pythonは型ヒントを持っていても実行時validationを持たない. ただしPythonは型ヒントをアノテーションとして実行時まで抱えている. なのでカスタムvalidationを仕込むことができる. OmegaConf は Structured config の利用時にvalidationを提供する. MISSIN…

Pythonにおける型: 基本的な役割と応用方法

基本: 「Python ランタイムは、関数や変数の型アノテーションを強制しません。」 by Python Docs 基礎的な用途は型チェック・IDE/Linterサポート Pythonはアノテーションを手軽に取得できる(X.__annotations__)ので、ランタイムでこの型を利用できる. つま…

HydraとOmegaConf

Hydraの特徴: 実行時のconfig差し替えユーティリティが充実. Defaults List: yaml内からの他yamlの呼び出し/composeを可能にする Config Group: CLI引数でディレクトリ構造に基づいた他のyamlの呼び出し 要素ごとにConfigファイルを分割し、ディレクトリでグ…

サブバンド

例: 125 ms長のFIRフィルタ 125 msに含まれるサンプル数はsrに依存. sr=16kHzだと2000サンプル、sr=8kHzだと1000サンプル. 帯域を2分割すると 16kHz/2000サンプル => 8kHz/1000サンプルx2 になる. 新しいサンプルが来るたびにFIRフィルタをかけるため、フル…

論文解説: Multiband-WaveRNN

Multiband-WaveRNN は「WaveRNNは表現力を余らせてる」という仮説の下で、サイズを変えていないWaveRNNへサブバンドN個の同時予測を課したモデル1. なんと実際にMOS差無しでNバンド予測に成功. 動作周波数を1/NにできるのでRTFが大幅に改善. 背景・モデル Wa…

Gated Activation Unit; tanh出力をsigmoidでゲーティング

Gated Activation Unit は活性化関数/ユニットの一種. output = tanh(Wfilter ∗ input) ⦿ σ(Wgate ∗ input) tanh(conv(input))で非線形変換した出力に対し、sigmoid(conv'(input)) で出てくる 0~1 を用いたGatingをかけているとみなせる. Gated PixelRNNにお…

DNN tips: Conv+FCをConvだけで表現

全結合をConvで表現できる. チャネルのこと深く考えなくて済むので楽. やり方: kernelサイズを最大、出力channel数を希望出力次元にするだけ 理由: 全面を覆ったらスライドも何も無くなり、単に要素にweight掛けてsumするだけになり、スカラ値が出てくる. ch…

音声合成器と特性: タスクごとに要件は違う

特性一覧 quality latency ↓ stream latency: サンプル出力時 - サンプル受信時 ↓ realtime factor; RTF: 処理時間/信号長 ↓ performance: リソース要求量/使用量 CPU/GPU/メモリ タスクと特性; 要件 音声素材検証 文章や補助入力を考えながら打って「よしこ…

仕様の軽視と見栄

意味を感じないのに納得したフリをして仕様化すると、後々仕様を無視するようになる. 仕様の無視はすなわち、客観的な詐欺である. https://www.mitsubishielectric.co.jp/news/2021/1001-b.html 公的な規格と整合しないことや顧客との契約で合意した仕様(顧…