論文メモ_4

Adversarial Attacks Against Automatic Speech Recognition System via Psychoacoustic Hiding
Hybrid DNN-HMM systemを対象としたadversarial attack。exampleを生成する際、mp3圧縮を参考に取りうる値に制約を置くことで、imperceptibleに。任意の単語系列にご認識させられる。コード、サンプルともに公開されていた。

 

Encrypted Speech Recognition using Deep Polynomial Networks
server側でASRを行う際、client側で音響特徴量を暗号化し、server側ではそれに対してhomomorphic encryptionをかけたままposterior probabilityを計算する。client側はそれを受けとって解読し、最終的なsearchを行う。How to prune in encrypted domain and hide this information is still an open problem.

 

Improved Speech Separation with Time-and-Frequency Cross-domain Joint Embedding and Clustering
mixture signalに対してmaskをかけてspeech separationを行う際、time and frequency domain features両方を考慮させる。そのため、入力信号にSFTFをかけた後の出力とCNNをかけた後の出力 (CNN encoded features) 両方を対象に、それぞれmaskの推定や信号の生成を行う。maskを計算する際に1d convをかけ、両方をミックス。

 

Speech Model Pre-training for End-to-End Spoken Language Understanding
Spoken language understanding のためのデータ (Fluent Speech Command) およびコードを作成。# hours (train): 14.7, # spk (train): 77。

 

Few Shot Speaker Recognition using Deep Neural Networks
capsle networkを用いて、few shot speaker recognition (~3seconds)。

 

Triplet Network with Attention for Speaker Diarization
speaker diarization taskでself attentionを用いる。triplet lossを用いて、異なる話者との間のembedding space上での距離(L2)が一定以上となるよう学習。評価基準はdiarization error rate[1]。
[1] pyannote.metrics: a toolkit for reproducible evaluation,diagnostic, and error analysis of speaker diarization systems

 

Discriminative Learning for Monaural Speech Separation Using Deep Embedding Features

論文メモ_3

End-to-End Multi-Speaker Speech Recognition using Speaker Embeddingsand Transfer Learning
"VoiceFilter: Targeted Voice Separation by Speaker-Conditioned Spectrogram Masking"と似たアイディア。single speakerでモデルを事前学習。

 

Self-supervised Attention Model for WeaklyLabeled Audio Event Classification
audio event classification taskで、正確な時間情報を含むラベル情報 (strong labels) がある場合、当該時刻の当該クラスにかかるattentionが高くなるように、lossを追加。strong labelsがない場合も、self-supervisedで学習できる。(TTS分野でも[1]のようにattention自体に対してlossを定義している手法がある、おいている仮定は違うが。)
[1] Efficiently Trainable Text-to-Speech System Based on Deep Convolutional Networks with Guided Attention

 

Forward-Backward Decoding for Regularizing End-to-End TTS
End-to-End TTSにおいて、decoderはleft-to-right (L2R)にdecodeしていく。そのため、exposure biasが問題となる。これに対処するため、right-to-left (R2L)にstepを進めるdecoderも学習し、両者の生成するメルスペクトログラム (もしくはhidden states)が一致するよう、新たにロスを追加する。メルスペクトログラムを対象とした場合、data augmentationともみなせる。
ASRでも同じモチベーションで研究が行われており、その一つが[2]
[2] Forward-Backward Attention Decoder

 

Exploring Phoneme-Level Speech Representations for End-to-End Speech Translation
End-to-endで音声翻訳をする際、直接frame-levelの音響特徴量を入力するのではなく、phoneme-levelの情報、具体的にはDNN-HMMで求めたアライメント、を入力としてMTを学習。

 

Very Deep Self-Attention Networks for End-to-End Speech Recognition
モチベーション:transformerをそのまま音声認識に適用しても、精度の改善は限定的なので、さらに改良を加える。residual layerのskipしない方の値に(dropoutと同じように)maskをかけるstochastic layerを提案。very deep: 48 transformer layers in total。

 

Almost Unsupervised Text to Speech and Automatic Speech Recognition
ASRのTTSの間のdualityに着目して、なるべく少ないpairwise dataだけを用いてASRとTTSモデルを学習。single speaker, 200 paired data on LJSpeech。⇔speech chain, cycle consistency。

 

Self-Attention Aligner: A Latency-Control End-to-End Model for ASR Using Self-Attention Network and Chunk-Hopping
Online recognitionのための、self attention network (SAN)を用いたend-to-end model。1) blankとcausalを考慮したマスクをかけてLMを学習 2)chunk単位での処理 (Chunk-hopping mechanism)

 

Towards Language-Universal End-to-End Speech Recognition
Multi-(3-) lingual end-to-end ASR。output unitの、複数言語間での共有を許す。output unitの発音が言語間で異なるので、言語情報を利用してhidden vectorに対してgatingを行う。また、対象言語と関係のないoutput unitはzero maskingする。

別スレッドで重いタスクを動かし、終了後にメインスレッドで値を受け取る。

タイトルにある動作をC++で実装する際、future/promiseを用いた。スレッド終了後、値の受け渡しができる。初めて使用したので、メモ。

std::futureを使うかboost::futureを使うかは、boost::is_ready()を使うかどうかで決める?std::futureのwait_for()でも同じ情報が取れるよう。違いがよく分からなかった。

-----
boost::promise<string> p;
boost::future<string> f = p.get_future();

thread_pool.post([&, ...] {
string r = func();
p.set_value(r);
});
-----
if (f.is_ready()) {
string ret = f.get();
}
-----

condition_variableでも同期やスレッド制御ができる。

[TODO] boost::shared_mutexについて

Kaldiでwav fileを読み込む

Kaldiでwav fileを読み込む

1) kaldi formatの"wav.scp"を読み込む:
SequentialTableReader<WaveHolder> reader(wav_rspeficier);
for (; !reader.Done(); reader.Next()) {
std::string key = reader.Key();
const WaveData &wave_data = reader.Value();
}

2) wav file pathを指定して読み込む:
std::ifstream ifs(wav_file_path, std::ios::in|std::ios::binary);
WaveData wave_data;
wave_data.Read(ifs);

論文メモ_2

 

Cross-Attention End-to-End ASR for Two-Party Conversations
2話者がturn changingしながら話した音声を認識する際、それぞれの話者のためembeddingを明示的に用意し、それをcontext embeddingとして使用。データベースは Switchboardで2-partyのみ。

 

Monaural Audio Source Separation using Variational Autoencoders
VAEを用いてsource separation。男性話者と女性話者の音声を重畳しており、より難しいtaskへの応用 (many/similar sources) がfuture work。

 

Multilingual Speech Recognition with Corpus Relatedness Sampling
複数言語のコーパス群を組み合わせてmultilingual ASRを作成する際、学習データとして使用する発話を、認識対象言語コーパスと学習コーパス群の間の類似度をもとにサンプリングして選択する。

 

Bidirectional Recurrent Neural Network with Attention Mechanism forPunctuation Restoration
音声認識モデルを学習する際、書き起こしの句読点は除かれる。認識結果に対して後処理的に句読点を付加するため、それらを追加するかどうかを決定するseq-to-seq modelを学習。入力として音響特徴や言語特徴の比較。

 

RWTH ASR Systems for LibriSpeech: Hybrid vs Attention- w/o Data Augmentation
Data augmentation無しLibrispeechを用いて、hybrid systemとseq-to-seq modelの性能比較。hybrid, seq-to-seqいずれも、他の研究と比べてstate of the art。当然、data augmentationした場合や大規模データを用いた場合に興味を持った。

 

Probabilistic Permutation Invariant Training for Speech Separation
従来のPIT/PFT (permutation invariant training)は、ロスを最小とするラベルを正解ラベルとして使用する。permutation functionを確率密度関数とするprobabilistic PITを提案。

 

Deep Context: End-to-End Contextual Speech Recognition

 

論文メモ_1


VoiceFilter: Targeted Voice Separation by Speaker-Conditioned Spectrogram Masking
複数話者重畳音声から、特定話者の音声のみを分離する手法を提案。抽出したい話者のd-vectorと複数話者重畳音声を入力し、理想的なmaskを計算。

 

Learn Spelling from Teachers: Transferring Knowledge from LanguageModels to Sequence-to-Sequence Speech Recognition
seq-to-seq ASR modelを学習する際、別途学習したRNNLMで計算した書き起こしに対する事後確率をsoft-labelとして利用。外部LMからknowledge distillationを行う。

 

Robust neural machine translation with doubly adversarial inputs
NMTのためのadversarial exampleの生成方法を提案。encoderへの入力、decoderへの入力、いずれもadversarial inputを計算。

 

Fine-grained analysis of sentence embedding using auxiliary prediction tasks
CBOWおよびencoder-decoderでword embeddingを求め、それらがlength testやcontent test, order testといったlow level taskでどのような性能を示すか調査。(There is clearly more to be done in this area, but the authors do a good job shedding some light on what sentence embeddings can encode. We need more work like this that helps us understand what neural networks can model.)