ディープラーニングと、オーディオや音声の信号処理のページです。
These are some repositories of deep learning, audio/speech signal processing.
ノッチフィルタのディープラーニング
演算精度が求められるノッチフィルタをディープラーニングで学習できるかどうか試してみた。
A study of design iir notch filter by deep learning framework chainer
サンプリング周波数を2倍に、 44.1kHzを48kHzに
FFT法を使って 音楽などのWAVファイルのサンプリング周波数を2倍にするプログラム。サンプリング周波数44.1kHzを48kHz/96kHzに変換するプログラム。
A converter of audio wav file samplimg rate to 2 times by FFT method
メル尺度のスぺクトログラムとオートエンコーダ
メル尺度のスぺクトログラムの作成、オートエンコーダによる事前学習、などの学習練習用。
A practice of making mel spectrogram, CNN autoencode pre-training, and classifier by deep learning
混合分布のHMM
数字の発話のメル尺度のスぺクトログラムを使って、主成分分析により特徴量の次元数を少なくして、混合分布の隠れマルコフモデル(HMM)を使って識別するもの。練習用。
A practice of Hidden Markov Model with Gaussian mixture emissions
音声信号のDNN
画像認識ではVGG16など事前学習したものを利用できるが、音声認識用途では少ない。 そこで、音声認識エンジンJuliusのディクテーションキットに含まれるDNNを利用するための特徴量FBANK_D_A_Zを計算するpythonを作ってみた。
A python class to get FBANK_D_A_Z from wave file for use julius dictation kit dnn model
音声信号のDNN-HMMの対数尤度の計算
音声認識エンジンJuliusのディクテーションキットに含まれるDNN-HMMモデルを利用して対数尤度を計算するpythonを作ってみた。
A python class to calculate DNN-HMM model Log-likelihood.
音声のホルマントの3D表示
LPC(線形予測分析)法によるホルマント周波数とピッチ周波数を推定する簡略的なプログラム。
A simple program of estimate formant and pitch frequecny of speech.
Vocal tract Tube Model
発声の2管声道モデルの周波数特性と生成波形。
a very simple model of vocal tract by two tube. frequecny response and cross-sectional view (area).
Vocal tract Tube Model その2
5管声道モデルの周波数特性と生成波形。
a very simple model of vocal tract upto five tube. frequecny response and cross-sectional view (area).
chainerによるピーク検出
ディープラーニングフレームワークのchainerによるピーク位置の推定
A study of 1D data peak detect by deep learning framework chainer
勾配ブースティング回帰による住宅価格の予測
ボストンハウスのデータ(13種類の指標と住宅価格のデータ)で住宅価格を予測する勾配ブースティング回帰(Gradient Boosting regression)の動作を理解する。ニューラルネットワークで予測した場合と比較する。
A study of Boston Housing Dataset problem by Gradient Boosting regression model and neural network model
U-Netによる音楽と音声のミックス信号(モノラル)からの音声の分離
バックに音楽が流れていて、そこから音声だけを抽出するような場面を想定して、音楽と相関のない音声をミックスしたモノラル信号から音声部分を抜き出す実験をしてみた。
A study of blind speech separation using U-Net
音楽のジャンル分け
Kerasで作成された音楽のジャンル分け(タグ付け)をChainer用に作り変えてみた。
A remake of Music Genre Classification with Deep Learning
音声分析変換合成システムWORLDのPython
WORLD PYTHONをWindows10でも動くように変更したもの。
A change of Python WORLD to function in win10 environment
WaveNetの実験
chainer-colab-notebookで公開されているWaveNetをGoogle Colaboratoryで実験してみた。
An experiment of WaveNet on Google Colaboratory
損失関数の自作
chainerを使ってインデック差で重み付けする損失関数を自作してみた。
A hand-made loss function which uses index difference as weight
スペクトル・サブトラクション
ノイズ抑制の手法の、簡単なスペクトル・サブトラクション。
A simple spectral subtraction
摩擦音の「さ」音の生成
2管声道モデルとノイズ源を使った摩擦音の「さ」音の生成
generation of fricative voice /sa/ sound by two tubes model and noise source instead of turbulent sound.
破裂音の「が」「か」音の生成
爆風インパルス波とノイズ源と2管声道モデルを使った破裂音の「が」「か」音の生成
generation of plosive voice /ga/ /ka/ sound by pseudo blast impulse, noise source instead of turbulent sound, and two tubes model.
鼻音の「な」「ま」音の生成
2管声道モデルと鼻の効果を含む音源を使った鼻音の「な」「ま」音の生成
generation of nasal voice /na/ /ma/ sound by two tubes model and nasal effect source.
ノイズ源有り無しの「い」音の生成
2管声道モデルとノイズ源を使った母音「い」音の生成
generation vowel /i/ sound by two tubes model and noise source.
3個の接合面を持つ管模型
もともとは鼻音のモデル化として作ったもの。これだけでは鼻音はうまく再現できない。)
three junction model of tube.
声門の音源のスペクトルの予想
口の放射特性の逆フィルターとフォルマント周波数で減衰するフィルターを使って声門の音源のスペクトルの状態を予想する
A trial estimation of glottal source spectrum by anti-formant filter and inverse radiation filter.
2管声道モデルの推定
周波数特性のピークとドロップピークから2管と3管と4管と5管の声道モデルを推定する。
estimation two three four five tube model from peak and drop-peak frequencies of vowel voice.
バンド・パス・フィルター・バンク
音声のバンド・パス・フィルター・バンクによる分析とその応用
Band Pass Filter bank and its application to voice sound analysis.
Wave Digital Filter
Wave Digital Filterによる3極真空管アンプのシュミレーション
Study of Wave Digital Filter and simple triode amplifier simulation.
スペクトログラムのよる高調波の分析
聴覚の仕組みに似せて作った分析器。
Spectrogram analysis of Tube Amplifier Distortion (PC simulation)
インパルス応答による非線形系の評価
非線形の出力と 仮にそれを線形に当てはめたときの出力(インパルス応答から計算)の差を計算する。
evaluate non linear system by difference with calculation from impulse response.
チェビシェフ多項式への展開
音楽信号の、チェビシェフ多項式への展開と、ARMAモデルによるスペクトル推定の試み。
trial of chebyshev polynomials expansion and ARMA Spectral density power estimation, to fragment of music signal
最小位相特性をもつFIRフィルターの設計
ヒルベルト変換を使って、与えられた周波数特性をもつ近似的な最小位相特性のFIRフィルターを設計する。
approximate minimum-phase FIR filter design from specified frequency characteristic by use Hilbert transform
PyAudioの実験
PyAudioを使った同時録音再生の実験。
experiment of PyAudio full duplex, record, filter, mix, and play simultaneously.
複数音源の調波構造
複数の話者と効果音から構成されるスペクトログラムと、その明瞭度が劣化したスペクトログラムの比較。
example of multiple sound sources spectrogram and clarity deteriorated one via sound path.
スペクトグラム検出器
スペクトログラムの中から、調波構成(曲がっているものと平坦なものの2種類だけ)を抜き出す画像認識の試み。
try of spectrogram detector by yolo cloned from AlexeyAB darknet
スペクトログラムの調波構造を構成する部品の検出
スペクトログラムにおいて調波構造を構成する部品をマスク付きテンプレートマッチング法で検出する試み。
experiment of voice/instrument-sound harmonic structure parts detection by template matching with mask method.
基底を使った数字文字の認識
3x3画素の基底を使ったMNIST数字文字の認識。
MNIST digits classification using 3x3 pixels basis function.
BipedalWalker-v2
強化学習のA3Cを使って、OpenAI Gym のBipedalWalker-v2で2本足を交互に動かす解を見つける。
Try to solve BipedalWalker-v2 move legs alternately by RL a3c.
prednetの練習
pytorchによるprednetの動作検証。
A prednet practice using preprocessed KITTI data.
BipedalWalkerHardcore-v2の障害状況の推定
OpenAI Gym のBipedalWalkerHardcore-v2の障害の状態をLidarの情報からDNNを使って予測させ、2種類の重みを切り替える方法を学習させるもの。
Try to estimate obstacle condition of BipedalWalkerHardcore-v2.
WaveGANの学習
WaveGANの学習と、波形そのものをラベルとして利用したconditional
A practice of wave GAN synthesize.
WebApp
ステレオ録音したLチャンネルとRチャンネルの時間差を推定するWebApp
A WebApp of stereo WAV file channel time difference estimation.
Riemann Zeta 関数の偏角の原理の計算
Riemann Zeta 関数の、□領域を区分求積法で、偏角の原理を計算する。
calculate number of Riemann zeta function zeros, according to argument-principle
Automatic Drum Transcription
ADTLibを利用したドラム譜の自動作成のトライアル
A trial of Automatic Drum Transcription.
Vocal Tract Tube Model repositories
声道モデルのレポジトリを表にまとめたもの
repositories table related to vocal tract tube model
DNNの意味
非常に多くの変数をもつ連立方程式を、その変数の多さに見合ったサンプル(経験)で解くことによって、(その複雑な)経験を表現(分類)できるようになる。原理的には、対象の複雑さにみあった変数の多さで、ありとあらゆる経験を学習させれば、ハズレは出なくなるようになるのかもしれない。
(2018年11月8日記)
DNNは精度計算が苦手だ。DNNに入れる前処理で (あらかじめ分析して) 特徴的な差が明確に現われるような
表現にしておく必要があるだろう。
(2020年1月26日追記)
強化学習について
基底となりうるBC(Behavior Copy)はない。あるのは、それを実現するために十分な「入力情報とネットワーク構造の組み合わせ」があるのだろう。
与えられた訓練サンプルの条件で、たまたま動いている感じで、応用が効かない。
無限に近い、ありとあらゆるサンプルで訓練できれば、ほとんどのことに対応できるようになるのかもしれないが、実現が困難である。
(2021年2月23日追記)
応用とは、細分化された(学習しやすいように)比較的浅いネットワーク構造において、
既に学習した重みを利用して、新たなものを (一部の重みを固定して)比較的 短時間で学習が完了することを云うのかもしれない。
(2021年2月28日追記)
それなりの結果を出すには膨大なビッグデータと計算パワーが前提となるが、個人でおこなうには限界がある。