2021-01-01から1年間の記事一覧
業者がSIMを50枚用意、ポケットWi-Fi機器を100台用意する. ポケットWi-Fi機器には仮想的なSIMが動的に割り振られる. 普通は機器100台に対して100枚のSIMが必要なのに半分で済むので、安くできる. ただし、50枚分の容量を使い切ったら当然繋がらなくなるので…
WaveRNNに関する記事集
音声波形生成タスクにおいて生成された波形に対するSTFTを損失関数に使う研究のサーベイ Parallel WaveGAN NSF HiFi-GAN MultiBand-MelGAN StyleMelGAN GAN系でSoTAなvocoderはみんな採用してるイメージある. model loss name reference loss intent PWG1 mu…
システムの特性: 善悪を持たず、あるのは安定性のみ 悪が滅びるでも善が広がるでもなく、システムは安定性の高い方・エネルギーの低い方へ揺らぎながら流れていく たとえ一石を投じてもエネルギー構造が変わらなければ徒労終わる可能性が高い (一時的に熱量…
確率分布からの微分可能なサンプリング手法 確率ベクトルにノイズ入れてargmaxすればindexが取れ、そのままone-hot vectorにもできる. => ノイズの入れ方を工夫すると分布通りのサンプリングが可能 (Gumbel-Max Trick) サンプリングはするけど微分もしたい a…
manipulation = call(sound, "To Manipulation", 0.01, 75, 600) pitch_tier = call(manipulation, "Extract pitch tier") call(pitch_tier, "Multiply frequencies", sound.xmin, sound.xmax, 2) call([pitch_tier, manipulation], "Replace pitch tier") s…
VCC2020 T10モデル1 (top score). ASRベースのrec-synでMOS 4.0 & similarity 3.6 を達成. Models ASR SI-ASR (N10と一緒?) Conversion model Encoder-Decoderモデル (≠S2S). Encoder LSTM -> 2x time-compressing concat2 -> LSTM Decoder Attention付きAR-…
Non-local Neural Networks (2018) モジュールのお気持ち 「私が欲しいものだけぜーんぶください」 FC: とにかく全要素を取りこむ Conv: 決め打ちで局所だけ取りこむ RNN: hiddent-1だけ直接取りこむ => 現在値に基づいて動的に、全長から欲しい要素だけ、取…
FastSpeechにピッチ推定も兼ねてみました論文. Durationと同じくphoneme単位でPitchPredictorを学習. Scalar予測した値をlatentと同じFeature次元に変換したのち、なんとただsum(segFCでFeature次元に飛ばしているので学習可になり、その辺で音高次元でも暗…
速い、巧い、(安いかは微妙)FastSpeech 概要 Transformerで音素列を系列変換、動的にアップサンプリング、Transformerで↑系列をmel-specへ変換. 以上. 動的アップサンプリングは LengthRegulator で実行され、音素ごとの倍率が DurationPredictior で動的…
モデルが中間表現として特定の値を取るように学習してほしい. A: モデルバイアスで自然とそう学習するように祈る B: モデル分割をして個別学習 C: その中間表現に対してLossを設定 D: Lossを設定したうえで次の層へは教師データを渡す(teacher forcing的) …
違うカーネルサイズのConvを並列に並べるパターン. チャネルごとにカーネルサイズが違うと見做すこともできる. 出力次元はstrideとchannel数で決まるのでmulti-resolutionにするかどうかとは無関係. ちょこちょこ色んなとこで再開発されてるイメージ. Tacotr…
主張「TTSしたいならWaveNetを複雑な特徴量で直接条件付けるより "良いchar2specモデル+spec2wave WaveNet" がいいぜ」 概要 Attention Seq-to-Seq で文字列からメルスペクトログラムを生成、WaveNetで波形生成. LSTM Encoderが文章を丸呑み、最終出力をzと…
3DはVTuberにとって「あれば活かしうる素晴らしいオプション」だが、必要条件ではない. もし3Dこそが本質ならば、論理的にYouTuberに勝てない. なぜなら物理的な人間の3D度は究極に高いから. そして実際、VTuberは3Dにこだわらない領域へも爆発的に浸透して…
多言語ASRの事前学習にCPCを利用、既存の教師ありモデルと同等以上の性能を発揮. 背景 小データの時どうするか => 近いドメインの大データでpre-training & Transfer learning ASRは音素っぽいものを事前学習できればわりと共用できそう => CPC 手法 CPCの教…
MelGANに対してモデル・Lossの最適化をした上で、最終出力チャネルを複数にしてそれぞれサブバンドを予測. 通称 MB-MelGAN モデル MelGANベース、すなわちConvT1dベース. ResBlock導入やDilatedConvによる受容野拡大により、フルバンドモデルそのものをまず…
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をいま振り返る. Summar…
生成モデル: サンプル分布全体を学習 生成モデルはかなり高等なモデル. ごく稀なサンプルのバラエティを含め、全てをモデリングしようとする. 生成モデルの実用時には分布の細部を無視したほうが結果が良いことが多々ある. => 生成モデルと"温度"パラメータ:…
生成モデルにはしばしば temperature パラメータが設定される. こいつが何で、何をして、どう便利なのかを解説する. tempered softmax Dahl, et al. (2017). Pixel Recursive Super Resolution. Parmar, et al. (2018). Image Transformer. "truncation tric…
Lockファイルは依存性のバージョンを厳密に指定することで動作を保証することを目的とする. 依存性の中にはハードウェアとの兼ね合いで(動作は同じ)ハードウェア固有バージョンを要求する場合がある. この2つは噛み合わせが悪い. Lockで厳密に縛るとハード…
BLAS: Intel MKL, OpenBLAS MKL-DNN PyTorch TorchScript libtorchから呼び出せるJIT-compiled モデル. 最初の20ループくらいで最適化が走るっぽい (ref). Fused-opsとかいろいろ. BLAS PyTorchは pip install時のCMakeでBLASライブラリを自動検出して利用. …
Makefileの目的はファイル更新日とファイル依存木に基づいた無駄のないレシピ/コマンド実行である. (Target, Prerequisites, Recipe) の3つ組を考える. make Target すると Prerequisites ファイルの更新を確認し、更新があれば Recipe を実行し、なければパ…
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…
Pythonは型ヒントを持っていても実行時validationを持たない. ただしPythonは型ヒントをアノテーションとして実行時まで抱えている. なのでカスタムvalidationを仕込むことができる. OmegaConf は Structured config の利用時にvalidationを提供する. MISSIN…
基本: 「Python ランタイムは、関数や変数の型アノテーションを強制しません。」 by Python Docs 基礎的な用途は型チェック・IDE/Linterサポート Pythonはアノテーションを手軽に取得できる(X.__annotations__)ので、ランタイムでこの型を利用できる. つま…
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 は「WaveRNNは表現力を余らせてる」という仮説の下で、サイズを変えていないWaveRNNへサブバンドN個の同時予測を課したモデル1. なんと実際にMOS差無しでNバンド予測に成功. 動作周波数を1/NにできるのでRTFが大幅に改善. 背景・モデル Wa…
Gated Activation Unit は活性化関数/ユニットの一種. output = tanh(Wfilter ∗ input) ⦿ σ(Wgate ∗ input) tanh(conv(input))で非線形変換した出力に対し、sigmoid(conv'(input)) で出てくる 0~1 を用いたGatingをかけているとみなせる. Gated PixelRNNにお…