AI
PyTorchとTensorFlowで再現性の違いが出ることはよくある。 その要因の一つが初期化手法の違い。 なのでドキュメントとコードを当たって初期化手法をチェックした。 PyTorch vs TensorFlow Linear: kaiming_uniform(a=√5) == ~U[±√1/fan_in] vs glorot_unifo…
Wikipedia/畳み込みニューラルネットワーク#受容野へ移行。
様々な音声合成の公開実装と評価をしました論文 by Fairseqチーム1。 文字/音素/Unit-to-MelとvocoderでSpeech Synthesisをして、Fairseqお得意の指標群で客観評価。 Models models Implemented by Fairseq S2 Text-to-Mel: Tacotron 2, Transformer TTS, Fa…
まとめ: 要素の本質的な影響よりハイパラの影響が大きいため、要素入れ替えによる影響評価には向かない(不可能ではない。向かないだけ)。 要素入れ替え評価 特定コンポーネントの価値を評価する手法として、そのコンポーネント以外を固定にしてそのコンポ…
LPCNet系とは、線形予測にNN残差予測を組み合わせたLPCNetを起源とするモデルクラス。線形予測符号化とWaveRNNが祖先。モデル効率の良さからくる高速性とオープンソースのC実装がウリ。 要素解釈 Excitation/Residual - 単なる非線形補完 古典的ソース・フィ…
提案モデル: mel-spec input (pitch-less), multiband LPCNet1 デモ 中国語デモ wavecoder.github.io ConditioningNetwork 入力にmel-specをそのまま利用2, 3, 4(pitch無し5, 80 dim6)。 Mel2LPcoeff LP係数はmel-specから計算7。各バンドではmel-specのう…
LPCNet、効率化しました (x2.5~)。 背景 - ボトルネックはわかっている、観念しろ LPCNetはモバイルCPUリアルタイム推論ができるほど速い。 巨大化すれば品質も良い。 しかし速度制約を満たす中での品質には改善の余地があり1、一層の効率化が求められている…
PyTorchでnn.LSTMCellをONNXにエクスポートすると、LSTM operatorになるでもなく、LSTMCell operatorになるでもなく、プリミティブ opsの集まりとして出力される。 gist.github.com まず、ONNXにはRecurrentCellに相当するoperatorがない(参考: wikipedia/O…
命名規則: saveされる変数はexposedとして扱う モデル状態は state_dict() で保存され、後日loadされる。 state_dict()はパラメータ(例: nn.Module) とバッファを変数名に基づいて保存し、load時は変数名に基づいて状態がrestoreされる。 なのでモジュール…
幅のある入力をスライドさせながら処理していくとき、左右端をどうするかという問題がでてくる。 端を何かしらの値で埋める(入力をちょっと大きくしておく)処理をパディングという。 特にPyTorchにおけるパディング実装のまとめ。 F.pad torch.nn.function…
OpenVINO Model Zooにある wavernn (composite) というモデルの解説. 概要 mel2waveのWaveRNN Vocoder1. fatchordタイプ、すなわちResNetベースのPreNetをもちMoLパラメータを出力する. fatchordのLJSpeech学習済みモデル(ljspeech.wavernn.mol.800k.zip)…
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…
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的) …
主張「TTSしたいならWaveNetを複雑な特徴量で直接条件付けるより "良いchar2specモデル+spec2wave WaveNet" がいいぜ」 概要 Attention Seq-to-Seq で文字列からメルスペクトログラムを生成、WaveNetで波形生成. LSTM Encoderが文章を丸呑み、最終出力をzと…
多言語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…
生成モデル: サンプル分布全体を学習 生成モデルはかなり高等なモデル. ごく稀なサンプルのバラエティを含め、全てをモデリングしようとする. 生成モデルの実用時には分布の細部を無視したほうが結果が良いことが多々ある. => 生成モデルと"温度"パラメータ:…
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にお…
特性一覧 quality latency ↓ stream latency: サンプル出力時 - サンプル受信時 ↓ realtime factor; RTF: 処理時間/信号長 ↓ performance: リソース要求量/使用量 CPU/GPU/メモリ タスクと特性; 要件 音声素材検証 文章や補助入力を考えながら打って「よしこ…
「誤差はいくつか」と「誤差をどう重みに反映するか」の役割分担. 特定の層だけ学習無しにしたい場合(例: Encoder-FixNet-Decoder)、誤差逆伝播をFixNetで止めるのはNG. なぜならEncoderへ誤差が伝わらないから. Backwardは通常通り計算して、OptimizerをE…
gslm/speech2unit: Speech-to-連続unit-to-離散unit. モデルと学習済みパラメータが配布. /pretrained: Speech-to-連続unitの部分 /cpc_feature_reader.py: PCP Speech-to-unitモデルの色々 CPCEncoder: [Conv-CN-ReLU]x5だけ. 超シンプル. CPCAR: ただのLST…