たれぱんのびぼーろく

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

FairSeqのGSLMレポ解析

  • gslm/speech2unit: Speech2連続特徴量2離散特徴量. モデルと学習済みパラメータが配布.
    • /pretrained: Speech2連続特徴量の部分
      • /cpc_feature_reader.py: PCP Speech-to-unitモデルの色々
        • CPCEncoder: [Conv-CN-ReLU]x5だけ. 超シンプル.
        • CPCAR: ただのLSTM. hiddenが取り出せるようになってる.
        • CPCModel: フルモデル. 抽出する特徴量の切り替え(Genc出力かGar出力か)と正規化を備えてる
        • load_cpc_model: モデルload
        • CpcFeatureReader: ユーティリティクラス. 音声ファイル読み込みからアサーション、コンフィグ周りなど諸々.
    • /clustering: k-mean周り
      • [/quantize_with_kmeans.py]: Speech2離散特徴量 & (pre-extracted)連続特徴量2離散特徴量の実行ファイル
        • Speech2連続特徴量はget_features関数経由
        • k-mean実行は kmeans_model = joblib.load(open(args.kmeans_model_path, "rb")) からの pred = kmeans_model.predict(feats)
          • scikit-learnで学習したモデルを丸ごとdumpしてあって、joblib.loadしたらそのまま動く

S2u 推論 with Pretrained model: My Notebook

prediction in 機械学習

PredictionとReconstruction

  • prediction: 対応する特徴量無しに対象の観測値を推定すること
  • reconstruction: 対応する特徴量から対象の観測値を生成すること

Predictionの場合、contextを基に観測値を推定する.
イメージとしては、1枚だけ裏返しで他が全部表の神経衰弱

Reconstructionは特徴量/潜在表現があって、それをfullの観測値へと変換する.
イメージとしては、「ハートのK」という文字列表現をカード画像へと再構成する.

データを欠損させて欠損推定をするか、データを圧縮して再構成するかなので、どっちもUnsupervisedに学習できる.

Predictionの例

Masked Language Model (e.g. BERT)

"'masked language model' (MLM) pre-training objective, inspired by the Cloze task (Taylor, 1953)."
BERT paper. arxiv 1810.04805

超解像度とか画像生成の文脈でマスク画像からのフル画像再構成が出てくるけど、あれは多分にPredictionをしている.

Word2Vec
prediction target: neighbor words

論文解説: Speech Resynthesis from Discrete Disentangled Self-Supervised Representations

ニューラルな音響特徴量(content, fo, speaker)からneural vocoder音声合成/変換/圧縮できるかなチャレンジ.

表現学習とボコーダ学習は完全分離 (表現モデルをpretraining -> fix). fixされたモデル出力からボコーダ学習.
content表現モデルはCPC, HuBERT, VQ-VAEの3つを試してる.

フォーマルまとめ

Acoustic Unitを入力とする音声合成(unit-to-speech)、話者変換、圧縮が可能であることを示した.
制御性を重視し、3つの個別Acoustic Unit (content, fo unit, speaker) を入力とし、韻律制御時にはfo unitを、VC時には speaker Identityを操作してHifiGANによる音声合成をおこなった.

論文情報 & デモ

  • paper: Polyak, et al. (2021). Speech Resynthesis from Discrete Disentangled Self-Supervised Representations. Arxiv.
  • demo: link

背景

Acoustic Unitの評価はASRベースがほとんど.
デモとして音声再合成が示されてはいるが、unitの特性(含まれている情報 (e.g. phoneme・fo・speaker) 、disentanglement、合成精度への貢献など)は研究が進んでいない.

やったこと

複数のAUD手法を再合成/韻律操作/VCの観点で評価.
Acoustic Unitのサイズの観点から符号化への適用を検討.

モデル入出力

  • content encoder Ec: waveform::RT -> discrete representation seq::Rn*T'
    • PCP | HuBERT | VQ-VAE
    • units zc::{0, 1, ..., K}L: k-means from continuous Ec output or direct discrete Ec output
  • Fo encoder EFo: waveform -> Fo -> discrete representation
  • speaker identity encoder Espk: ? -> single global representation::R256: d-vector

u2S

modified HiFi-GAN

The generator is built from - a set of look-up tables (LUT) that embed the discrete representation - a series of blocks composed of transposed convolution - a residual block with dilated layers.

The transposed convolutions upsample the encoded representation to match the input sample rate, while the dilated layers increase the receptive field.

inputs: (zc, zFo, zspk) zc, zFo => LUTc or LUTFo=> continuous representation
all z are upsampled then concated

D: MPD (5 sub Ds, period=2|3|5|7|11) & MSD (3 sub Ds, scale=x1|x2|x4 downsampled)
Spectrogrm loss is used.

Experiments

VCTK 16kHz

CPC

  • model: CPC2
  • dataset: 6k subset of LibriLight

We follow the same setup as in [GSLM].
For CPC, we used the model from [Riviere2020towards], which was trained on a “clean” 6k hour sub-sample of the LibriLight dataset [45, 44].

k-mean dim: 100

結果

VQVAEと比較してCPCとHuBERTはdisentangleなcontentになってる.

再構成タスクだと自然性MOSに顕著な差がない.
要素ごとに見ていくとVQ-VAEはcontent精度が微妙な代わりにFoの精度が非常に高い.
CPCとHuBERTは各指標についてHuBERTの方がデータセットによってはちょっといい、という感じ

変換タスクだと顕著な差が出る.
VC時にはVQVAEのMOSが3以下にまで落ち、content精度も低い.
Fo変換では逆に変換がほとんどかからず、content representationにFoがentangleされていることが伺える.
CPCとHuBERTはHuBERTの方が優勢といった感じ.

専門家・キャリア

  • feature専門家
  • technical専門家

の2パス
特定分野のUXをポンと渡されたら、実装スタックの候補をガーッと出せるのがfeature専門家
ある技術について、理論から実務、新規研究までできるのがtechnical専門家

組織構造で出てくるfunctional/featureと同じ構造

スクラム型なら、スプリントでHow決めるときに長期目線のアドバイスくれるのがtech
POはfeatureで、スクラムマスターはtech.

専門家のパス
ジュニアは専門知識を血肉にして自ら使いこなす

  • シニア専門家: ひた磨く
  • 伝道師: 専門をチームに浸透させ価値を生む
    • 伝え広めること自体、専門技術
  • 研究者: 人類未到を切り開き新しい価値を創る
    • 最先端は特別

feature/techを前提として、実務家・伝道師・研究者の方が区切りがいい感じも.
三者の割合でその人の特徴が見えてくる.
シニアfeature実務家だったらfeatureLeadっぽくて、シニアtech研究者だったら准教授っぽい.
シニアtech伝道師ならスクラム跨いだtech導入する人 (CTOなのか? VPoEなのか?)
いわゆるマネジメントは実務を超理解した上でディレクションに徹して実務はしないのが肝.
なのでCTOは実務家と伝道師のあいのこなのでは?

スクラムだとシニアtech実務家は人数がかなり限られると思う.
機能型組織なら「工場のドン」「マーケの鬼」みたいな人が必須でまさにシニアtech実務家.
不確実性が高い課題の場合、使う技術をサクサク変えられるのはとても大事.
普遍のコアが見えた段階でそこにだけシニアtech実務家を迎えることになるけど、スクラム型の場合、分野問わずのメジャーなキャリア、にはならないと思う. あくまで普遍のコアでだけ.
コア以外のtechでは長期価値をもたらす技能をスクラム跨いで実践してもらうことが重要になるので、必ず伝道師スキルが必要になってくる. イメージとしてはtech分野別ミニCTO、的な.
スクラムに全種のtech実務家を置けたら最高だけど、それは贅沢な望みってやつ

根底にある思想として「累積的UXが全てでありながらその中心にはブレない核心的UXとtechが常にある」を持ってるんだと思う.
核心的UXを実現するtechはシニアtech実務家と研究者が担ってる.
ここが究極の差別化ポイント.

別の戦い方に「モノの本質は差別化できないから累積的UXで勝負」ってのもあるんだけど、自分の気質としてそれがあんま好きじゃないんだと思う.

規模と構造

大規模スクラムや階層構造が詰むやつ.

現場の知見を重視して作られる良くある構造:
密なチーム→全チーム共通ヘッド→スケールしない
密なチーム→スケールしない→多チーム自律→feature単位の部分最適
密なチーム→スケールしない→代議階層構造→チーム密にする意味ない命令型 or 浮世離れしたミッションコマンド

直接制を用いた現場課題の抽出

現場課題はいま直面してる問題をひっぱって来がち.
長期的だったり、構造的な問題はそう簡単にでてこない (分野専門家の仕事).

短期的価値 ----- 長期的価値
顧客・現場 ------- 専門家

短期も長期も解決する策を出すのがPOの仕事.
現場課題を直接制で、長期課題を専門家意見で見出す
見出したら解決策を考える.
関連する現場と専門家でスクラム組んで進める.

組織構造

特定価値に取り組むスクラムで基本的に仕事してる.
ディレクターは取り組む価値を決定して、チームを組成することの最終責任をもつ.
規模がどれだけ膨らんでも価値候補の数は一定までセレクションされるので検討数は無問題.
ディレクターが(代議制の)階層構造を持たないので、ディレクション担当だけど職人と近いのが構造上の利点.
どんなに現場と専門家がまともな課題あげても、最終決定がザルから意味がない.

チームへはほぼ全てを託す, じゃないとこの構造が破綻する.
ディレクターがチームと共に働き出すと、チーム数 = ディレクター負荷になる.
明らかに稼働が限界を超える.

ただこれだとディレクターと現場に交流がなくて、ディレクターが浮世離れする.
価値が根源なので受益人 (例: ユーザ) と常に実際に会うのは大前提として、ソリューションの浮世離れが怖い.
「資源がないとエネルギーが作れないのは大問題だ! 」とか言い出したら「永久機関でも作れってか…w」となるのがオチ.
ディレクターの仕事は期待値の最大化ゆえ、実現可能性は必須事項.
それは施策と深くリンクしてて、現場が非常によく知ってること.
ゴール設定から初期PBI設定までがディレクターの範囲?
施策決定ってつまり初期PBの完成なので、理屈はあってる.
プロトタイピングチームからスクラムチームへの発展.
ここからチームに自走してもらうか、PO (というかfeature owner) 含むチームに自走してもらう.

価値には連続性がある.
おんなじチームがプロダクトゴールを更新する場合、強い連続性があると考えられる.
ディレクターが決定した価値は誰かが当然取り組む.
既存チームの新しいプロダクトゴールか、チームの分割や合併か、完全新規かは場合によりけり
連続性がその判断基準. まえのゴールが中途半端じゃ意味ないし、逆にゴール書き換えが必要でこの価値が見出されたって場合もある.
現状の分割を跨いで価値を生む必要があると判断されるかもしれないし、逆にチームが2つの直交する価値を持ってるのかもしれない.

プロトタイピングでは、関係しそうなシニアを集めて高速で試し、その上で現在チームとの関係性を整理する.
価値を先行させた上で現実にチームで進められるかのジャッジ.

ディレクション

ディレクション: 価値の期待値を最大化する施策を最終決定すること. ここでの価値とは、短~長期的かつ継続的に、顧客・組織・株主・社会が受け取る価値を指す.