ichou1のブログ

主に音声認識、時々、データ分析のことを書く

2020-01-01から1年間の記事一覧

音声合成メモ(tacotron2その4)

トレーニング時におけるmodelの内部処理を見てみる。 Embedding/Encoderレイヤ Embeddingレイヤに渡す前に、テキスト文字はidに置き換えられる。idはゼロ始まりの148個。 ARPAbetの発音記号も含まれる。 {'_': 0, '-': 1, '!': 2, "'": 3, '(': 4, ')': 5, '…

音声合成メモ(tacotron2その3)

内部処理を見てみる。今回は、音声ファイルから特徴量(log-mel spectrogram)を求めるところまで。ソースでは、「mel_spectrogram」関数が該当する。 https://github.com/NVIDIA/tacotron2/blob/master/layers.py#L63 def mel_spectrogram(self, y): """Com…

音声認識や音声合成に出てくる用語のまとめ

(随時、更新します) 「スペクトラム」と「スペクトログラム」の違い 時間領域で標本化されたデータはチャンクに分けられ(チャンクは一般にオーバーラップさせる)、チャンク毎にフーリエ変換を施す。 各チャンクの変換結果が、ある時間における全周波数成…

音声合成メモ(tacotron2その2)

内部でどのような処理を行っているのか見てみる。論文より(Encoder/Decoderの枠線を加筆) 「torchsummaryX」を使って、モデルのサマリを出力してみる。 各レイヤ構成 Embedding (embedding): Embedding(148, 512) Encoder 「BatchNorm1d」レイヤに関して…

音声合成メモ(tacotron2その1)

NVIDIAのtacotron2を試してみる。GitHub - NVIDIA/tacotron2: Tacotron 2 - PyTorch implementation with faster-than-realtime inferenceまずは、Pre-trainedモデルを使ってinference(推論)「ちいさなうなぎやに」という音声を生成してみる。 text = 'che…

音声合成メモ(World)その1

音声合成「World」を試してみる。下記で公開されているATR音素バランス503文の発話データと、 https://ja.osdn.net/projects/galateatalk/releases/22207パラレルデータとして下記の"綾波音声"データを使用させていただいた。 Scyclone Demo Page データ1 ち…

音声認識メモ(DeepSpeech)その7

特徴量変換の際に、「MinMax正規化」を使ってみる。特徴量変換 波形データ 左から下記のとおり。 「ジェット機」 「どろぼうでもはいったかと、いっしゅんぼくはおもった」 「さっぽろ」 波形データ(MinMax正規化) data = librosa.util.normalize(original…

音声認識メモ(DeepSpeech)その6

前回の続き。プリエンファシスは必要か?「ジェット機」という音声のスペクトログラム。 左が「pre-emphasis なし」、右が「pre-emphasis あり」 トレーニング時の学習セット(ATR503) 他コーパス(その1) 最初の「ジェット機」に関しては、プリエンファシ…

音声認識メモ(DeepSpeech)その5

モデルのインプットとして使う特徴量を「MFCC」から「log-mel spectrum」へ変えてみる。インプットとして使う特徴量を変えてみる各Time-Stepごとの次元は、「26」次元(MFCC13次元にdelta特徴量を加えた分)から「128」次元(フィルタバンクチャネル数)に置…

音声認識メモ(DeepSpeech)その4

前回の続き。 それなりの認識精度が出ることを確認した。ここから、認識精度を高めること、汎化させることを考えてみる。 他コーパスの音声ファイル認識まずは、別の音声コーパスを試してみる。「東北大‐松下 単語音声データベース (TMW)」の単語音声「さっ…

Deep Learningを使ったWEBサービスはメモリ1GBでも動かせる

TensorFlowやPyTorchといった深層学習ライブラリを使おうとした場合、動かす環境はそれなりのスペックが必要になる。物理メモリが2GBのPCを使っていた頃、「VGG16」モデルを転移学習しようとしたらメモリに乗り切らなくて断念したことがある。トレーニングの…

日銀EFT買い入れの可視化をWEBサービスとして公開してみる

日銀EFT買い入れの可視化をWEBサービスとして公開してみる。https://analytics.katakanadojo.tokyo/d/WtlmSAaWz/nikkei?orgId=1&viewPanel=2 免責事項 コンテンツの内容に関しては細心の注意を払っておりますが、正確であるかについて保証をするものではなく…

TensorFlowメモ(clipped_relu)

Tensor演算に関するメモ。前回見たDeepSpeechのモデルでは、Denseレイヤの活性化関数で「clipped_relu」を指定した。 x = TimeDistributed(Dense(units=fc_size, kernel_initializer=init, bias_initializer=init, activation=clipped_relu), name='dense_1'…

音声認識メモ(DeepSpeech)その3

トレーニングによるパラメータ更新を試してみる。トレーニングデータは、下記で公開されているATR音素バランス503文の発話データを使うことにする。 https://ja.osdn.net/projects/galateatalk/releases/22207日本語コーパスを使った音素認識については下記…

TensorFlowメモ(CudnnLSTM)

DeepSpeechでは、「tensorflow.contrib」モジュールの「CudnnLSTM」が使われているので調べてみる。「CudnnLSTM」のソースコード tensorflow/cudnn_rnn.py at v1.15.2 · tensorflow/tensorflow · GitHub実行する環境は「TensorFlow 2.X」系 % python -c 'imp…

日銀のEFT買い入れを可視化してみる(2020年4月末までのデータ)

日銀が公開している情報をもとに、2020年4月末までのETF買い入れ額の累計を計算してみる。対象は、以下2つ。 設備投資および人材投資に積極的に取り組んでいる企業を支援するためのETF 上記以外のETF データは「InfluxDB」に登録した。 > select sum(amount_…

音声認識メモ(DeepSpeech)その2

モデルの構造DeepSpeechの「create_model」関数を追ってみると、modelの構造としては「6層」 Layer1: Dense ( + clipped RELU activation + dropout ) Layer2: Dense ( + clipped RELU activation + dropout ) Layer3: Dense ( + clipped RELU activation + …

TensorFlowメモ(checkpointの中身を確認する)

checkpointファイルをもとに、TensorFlowモデルの内部パラメータを確認する方法のメモ。実行する環境は「TensorFlow 2.X」系 % python -c 'import tensorflow as tf; print(tf.__version__)' 2.1.0 確認用データの準備下記をもとに、適当なモデルを作って、c…

音声認識メモ(DeepSpeech)その1

Mozillaが公開する「DeepSpeech」を試してみる。 github.com環境準備(インストール) % pip install deepspeech% pip show deepspeech Name: deepspeech Version: 0.7.0 Summary: A library for running inference on a DeepSpeech model Home-page: https:…

音声ファイル特徴量変換(その6)MFCC(TensorFlow)

TensorFlowでMFCC(Mel-Frequency Cepstral Coefficient)を求めるには、「tf.signal.mfccs_from_log_mel_spectrograms」関数が提供されている。tf.signal.mfccs_from_log_mel_spectrograms | TensorFlow Core v2.1.0インプットは、前回見た、「メルスペクト…

音声ファイル特徴量変換(その5)メルスペクトログラム(TensorFlow)

TensorFlowでメルスペクトログラムを求めるには、「tf.signal.linear_to_mel_weight_matrix」関数が提供されている。 https://www.tensorflow.org/api_docs/python/tf/signal/linear_to_mel_weight_matrixMelスケールに変換するためのMatrixが得られるので、…

日銀のEFT買い入れを可視化してみる(2020年3月第1週までのデータ)

3月第1週は、2日と6日の2回、日銀によるETF買い入れが入った。 1回あたり購入額は、過去最大規模となる1002億円。 白のプロットが日経平均株価(終値) 紫の積み上げがETF買い入れ額(億円) 日銀が公開している情報をもとに、2020年に入ってからの分を集計…

日銀のEFT買い入れを可視化してみる(2020年2月末までのデータ)

2月最終週は、4日連続で日銀によるETF買い入れが入った。 この買いが無かったら、日経平均株価はもっと値を下げていたことだろう。 白のプロットが日経平均株価(終値) 紫の積み上げがETF買い入れ額(億円)日銀が公開している情報をもとに、2020年2月末ま…

音声ファイル特徴量変換(その4)STFT(TensorFlow)

TensorFlowで短時間フーリエ変換(Short-time Fourier Transform)を求めるには、「tf.signal.stft」関数が提供されている。 https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/signal/stft音声データは「yes」という一秒間の発話データ。 「li…

音声ファイル特徴量変換(その3)MFCC

前回の続き。「MFCC」(メル周波数ケプストラム係数)について見ていく。ここでは、視覚的な結果確認のみ書くので、計算過程などは以下をご参照。 work-in-progress.hatenablog.com音声データは「yes」という一秒間の発話データ。 MFCC(メル周波数ケプストラ…

音声ファイル特徴量変換(その2)メルスペクトログラム

前回の続き。「log-mel spectrogram」(STFT+メル周波数変換+自然対数)について見ていく。音声データは「yes」という一秒間の発話データ。 log-mel spectrogram メル周波数(対数変換なし) メル尺度に変換する。 import librosa import numpy as np # Au…

音声ファイル特徴量変換(その1)STFT

音声データを使う際は特徴量に変換する。 よく使われているのは「MFCC」だが、深層学習では「log-mel spectrogram」を使う実装例も出ている。 特徴量 実装例 STFT Looking to Listen at the Cocktail Party log-mel spectrrogram Deep Learning for Audio Si…

音声ファイル前処理(データロード)

例えばTensorFlowなどの深層学習ライブラリで音声を扱おうとした時、どのような変換をしているのか把握していないと応用が効かないし、詰まってしまう。 基本的なところからまとめ直してみる。前回のTensorFlowチュートリアルに出てくる"yes"の音声データを…

TensorFlowメモ(Simple Audio Recognition)

TensorFlowのチュートリアル「Simple Audio Recognition」を試してみる。docs/audio_recognition.md at master · tensorflow/docs · GitHubソースコードtensorflow/tensorflow/examples/speech_commands at master · tensorflow/tensorflow · GitHubどのよう…