たれぱんのびぼーろく

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

科学

iSTFTの再構成制約

NOLA / Nonzero Overlap Add: overlapped window が全域で非ゼロ (情報が落ちない)(scipy) COLA / Constant OverLap Add: overlapped window が中央部でフラット (scipy)

ヒトの声はmonophonicか

ヒトの声を如何にモデル化するか、そのモデルが何を再現出来て何を切り捨てているのか。 その際のかなり基本的な観点として「ヒトの声はmonophonicと見做せるか」がある。 polyphonicに「聞こえる」例 異なる旋律が2つ聞こえる例としてこの動画が挙げられる…

音声系の知識集約場所一覧

自分のブログでまとまったらwikipediaに移管している。 音響特徴量: wikipedia/音声分析#音響特徴量

Conv受容野サイズを計算する

Wikipedia/畳み込みニューラルネットワーク#受容野へ移行。

モデル解説: LPCNet系

LPCNet系とは、線形予測にNN残差予測を組み合わせたLPCNetを起源とするモデルクラス。線形予測符号化とWaveRNNが祖先。モデル効率の良さからくる高速性とオープンソースのC実装がウリ。 要素解釈 Excitation/Residual - 単なる非線形補完 古典的ソース・フィ…

サーベイ: STFT損失 in 音声波形ドメイン

音声波形生成タスクにおいて生成された波形に対するSTFTを損失関数に使う研究のサーベイ Parallel WaveGAN NSF HiFi-GAN MultiBand-MelGAN StyleMelGAN GAN系でSoTAなvocoderはみんな採用してるイメージある. model loss name reference loss intent PWG1 mu…

粗い理解: gumbel softmax

確率分布からの微分可能なサンプリング手法 確率ベクトルにノイズ入れてargmaxすればindexが取れ、そのままone-hot vectorにもできる. => ノイズの入れ方を工夫すると分布通りのサンプリングが可能 (Gumbel-Max Trick) サンプリングはするけど微分もしたい a…

論文紹介: Liu (2020) Non-Parallel Voice Conversion with Autoregressive Conversion Model and Duration Adjustment

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 operations / self-attention

Non-local Neural Networks (2018) モジュールのお気持ち 「私が欲しいものだけぜーんぶください」 FC: とにかく全要素を取りこむ Conv: 決め打ちで局所だけ取りこむ RNN: hiddent-1だけ直接取りこむ => 現在値に基づいて動的に、全長から欲しい要素だけ、取…

論文解説: FastPitch: Parallel Text-to-speech with Pitch Prediction

FastSpeechにピッチ推定も兼ねてみました論文. Durationと同じくphoneme単位でPitchPredictorを学習. Scalar予測した値をlatentと同じFeature次元に変換したのち、なんとただsum(segFCでFeature次元に飛ばしているので学習可になり、その辺で音高次元でも暗…

論文解説: Ren (2019) FastSpeech: Fast, Robust and Controllable Text to Speech

速い、巧い、(安いかは微妙)FastSpeech 概要 Transformerで音素列を系列変換、動的にアップサンプリング、Transformerで↑系列をmel-specへ変換. 以上. 動的アップサンプリングは LengthRegulator で実行され、音素ごとの倍率が DurationPredictior で動的…

意図した中間表現の学習

モデルが中間表現として特定の値を取るように学習してほしい. A: モデルバイアスで自然とそう学習するように祈る B: モデル分割をして個別学習 C: その中間表現に対してLossを設定 D: Lossを設定したうえで次の層へは教師データを渡す(teacher forcing的) …

Tacotron 2

主張「TTSしたいならWaveNetを複雑な特徴量で直接条件付けるより "良いchar2specモデル+spec2wave WaveNet" がいいぜ」 概要 Attention Seq-to-Seq で文字列からメルスペクトログラムを生成、WaveNetで波形生成. LSTM Encoderが文章を丸呑み、最終出力をzと…

論文解説: Multi-band MelGAN: Faster Waveform Generation for High-Quality Text-to-Speech

MelGANに対してモデル・Lossの最適化をした上で、最終出力チャネルを複数にしてそれぞれサブバンドを予測. 通称 MB-MelGAN モデル MelGANベース、すなわちConvT1dベース. ResBlock導入やDilatedConvによる受容野拡大により、フルバンドモデルそのものをまず…

コーパス: 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…

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

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

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にお…

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

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

BackwardとOptimizer

「誤差はいくつか」と「誤差をどう重みに反映するか」の役割分担. 特定の層だけ学習無しにしたい場合(例: Encoder-FixNet-Decoder)、誤差逆伝播をFixNetで止めるのはNG. なぜならEncoderへ誤差が伝わらないから. Backwardは通常通り計算して、OptimizerをE…

prediction in 機械学習

PredictionとReconstruction prediction: 対応する特徴量無しに対象の観測値を推定すること reconstruction: 対応する特徴量から対象の観測値を生成すること Predictionの場合、contextを基に観測値を推定する. イメージとしては、1枚だけ裏返しで他が全部表…

sys.float_info.minと配列代入の罠 - numpy float32

sys.float_info.min (とても小さい値) を代入しても何故か0.になる。logが死ぬ。 データ型を疎かにしてたらハマった. 再現コード float_array = numpy.array([1., 2.,], dtype=np.float32) tiny = sys.float_info.min print(float_array) # [1. 2.] float_ar…

librosaとscipyでFFTをマッチさせる

背景 librosaはSTFTがとっても便利。 プリミティブにFFTをしようと思ったらscipy.fft.rfftになる. この2つ、同じ動作するのだろうか? 動作 デフォルト動作だと違う動きをする. 以下が同じ動作をする librosa.stft(x_full, n_fft=n_fft, window="boxcar", ce…

ビット分割

n-bitの整数を整数の組み合わせで表現する方法. 上位ビット/下位ビットみたいなやつ. 表現 6bit == 26 == 0~63 これを上位3bitと下位3bitに分割し、そのペアで表現する. (3bit, 3bit) == (23, 23) == (0~8, 0~8) 変換法 上位decimal = valuedecial // 2nbit/…

Energy-Based Model

Energy-Based Model: "不安定さ"に相当するEnergyを確率変数に割り当てるモデル. エネルギーから確率を得たり、確率変数間のエネルギー比を計算したりして使う. 確率として扱う場合は確率密度関数をボルツマン分布とする. ボルツマン分布はポテンシャル関数…

Scyclone VC

CycleGAN + linear spectrogram + WareRNN Vocoder => similarity MOS 4.5, naturalness MOS 3後半 [わかる人向け記事] Overview Masaya Tanaka, Takashi Nose, Aoi Kanagaki, Ryohei Shimizu, and Akira Ito (2020) Scyclone: High-Quality and Parallel-Da…

声質変換 (Voice Conversion, ボイチェン) とは

声質変換(こえしつへんかん、せいしつへんかん1)とは、声がもつ意味を変えずに質感のみを変えること。正確には、「入力音声に対して, 発話内容を保持しつつ, 他の所望の情報を意図的に変換する処理」2のこと。 英語では「Voice Conversion」や「Voice Tran…

音響特徴量は、特徴を捉えているか

音響特徴量は音がもつ特徴を捉えた指標だと期待されている. 既知の音響特徴量に基づいた音声認識・合成・変換は、いまやデータに基づく特徴量を用いた、あるいはE2Eの方法に追いつかれつつある。 本当に、音響特徴量は本質を捉えた特徴量なのか?

早稲田大学 神経科学/ニューロサイエンス

花嶋かりな hanashima-lab.wixsite.com 2017年度から早稲田へ。もともと理研CDB? 筒井研究室 筒井研究室 神経化学かな? 渡邊研究室 Cognitive Science - Watanabe Laboratory 大須研究室 早稲田大学人間科学学術院大須研究室 ATR 教育・総合科学学術院 花嶋…

運動を読み取る/フルダイブVR

真のVR/フルダイブ実現には「運動意図の読み取り」が必須だ. これが実現すれば、現実世界でコントローラーを持たずに、仮想世界で生きることができる. 本記事では、最先端の科学でどこまで「運動(意図)の読み取り」が可能になったか紹介する. 内容 アメリカ …