サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ノーベル賞
r9y9.github.io
Summary コード: https://github.com/r9y9/nnsvs Discussion: https://github.com/r9y9/nnsvs/issues/1 Demo on Google colab 春が来た 春が来た どこに来た。 山に来た 里に来た、野にも来た。花がさく 花がさく どこにさく。山にさく 里にさく、野にもさく。 NNSVS はなに? Neural network-based singing voice synthesis library for research 研究用途を目的とした、歌声合成エンジンを作るためのオープンソースのライブラリを作ることを目指したプロジェクトです。このプロジェクトについて、考えていることをまとめておこうと思います。 なぜやるか? NEUTRINO レベルの品質の歌声合成エンジンが作れるのかやってみたかった オープン
WN-based TTSやりました / Natural TTS Synthesis by Conditioning WaveNet on Mel Spectrogram Predictions [arXiv:1712.05884] Summary Thank you for coming to see my blog post about WaveNet text-to-speech. 論文リンク: https://arxiv.org/abs/1712.05884 オンラインデモ: Tacotron2: WaveNet-based text-to-speech demo コード r9y9/wavenet_vocoder, Rayhane-mamah/Tacotron-2 音声サンプル: https://r9y9.github.io/wavenet_vocoder/ 三行まとめ 自作Wave
An open source implementation of Deep Voice 3: Scaling Text-to-Speech with Convolutional Sequence Learning Github: https://github.com/r9y9/deepvoice3_pytorch This page provides audio samples for the open source implementation of Deep Voice 3. Samples from single speaker and multi-speaker models follow. Single speaker Samples from a model trained for 210k steps (~12 hours)1 on the LJSpeech dataset.
WaveNet vocoder をやってみましたので、その記録です / WaveNet: A Generative Model for Raw Audio [arXiv:1609.03499] Summary コード: https://github.com/r9y9/wavenet_vocoder 音声サンプル: https://r9y9.github.io/wavenet_vocoder/ 三行まとめ Local / global conditioning を最低要件と考えて、WaveNet を実装しました DeepVoice3 / Tacotron2 の一部として使えることを目標に作りました PixelCNN++ の旨味を少し拝借し、16-bit linear PCMのscalarを入力として、(まぁまぁ)良い22.5kHzの音声を生成させるところまでできました Tacotron2 は
共通事項 すべて、clang/llvmをC++インタプリタのベースにしています。Cxx.jl以外は、C++インタプリタであるclingをベースに、さらにその上にjupyterカーネルを実装しています。 1. cling clingは、いわずとしれた(?)C++インタプリタ実装です。後述するROOTという data analysis framework の一部として、CERNによって開発されています。(20年くらい前の) 古くからあったCINTというC++インタプリタ実装が、clangを使って書き直された、という歴史があります。clingプロジェクトの一環としてJupyterカーネルが開発されています。 良いところ clingの起動が速いのでストレスが少ない 5 イマイチなところ IPythonだと使える %time のようなマジックはない cling本体で良いのでは?感が否めない。clin
ニューラルネットの学習過程の可視化を題材に、Jupyter + Bokeh で動的な描画を行う方法の紹介 [Jupyter Advent Calendar 2017] 前置き Jupyter Advent Calendar 2017 14日目の記事です。この記事は、Jupyter notebookで作成したものをnbconvertでmarkdownに変換し、手で少し修正して作りました。読み物としてはこの記事を、実行するにはノートブックの方を参照していただくのが良いかと思います。 ノートブック (gist) nbviewer 概要 適当なニューラルネットの学習過程の可視化(ロス、正解率の遷移等)を題材にして、Bokehを使って動的にグラフを更新していくことによる可視化の実用例を紹介します。このノートブックの冒頭に、最後まで実行すると得られるグラフ一覧をまとめました。どうやってグラフを作るのか
Summary コーパス配布先リンク: JSUT (Japanese speech corpus of Saruwatari Lab, University of Tokyo) - Shinnosuke Takamichi (高道 慎之介) 論文リンク: arXiv:1711.00354 三行まとめ 日本語End-to-end音声合成に使えるコーパスは神、ありがとうございます クリーンな音声であるとはいえ、冒頭/末尾の無音区間は削除されていない、またボタンポチッみたいな音も稀に入っているので注意 僕が行った無音区間除去の方法(Juliusで音素アライメントを取って云々)を記録しておくので、必要になった方は参考にどうぞ。ラベルファイルだけほしい人は連絡ください JSUT とは ツイート引用: フリーの日本語音声コーパス(単一話者による10時間データ)を公開しました.音声研究等にお役立てくださ
Tacotron: Towards End-to-End Speech Synthesis / arXiv:1703.10135 [cs.CL] Googleが2017年4月に発表したEnd-to-Endの音声合成モデル Tacotron: Towards End-to-End Speech Synthesis / arXiv:1703.10135 [cs.CL] に興味があったので、自分でも同様のモデルを実装して実験してみました。結果わかったことなどをまとめておこうと思います。 GoogleによるTacotronの音声サンプルは、 https://google.github.io/tacotron/ から聴けます。僕の実装による音声サンプルはこの記事の真ん中くらいから、あるいは Test Tacotron.ipynb | nbviewer1 から聴くことができます。 とても長い記事になっ
10/11 追記: IEEE TASLPのペーパー (Open access) が公開されたようなので、リンクを貼っておきます: https://ieeexplore.ieee.org/document/8063435/ arXiv論文リンク: arXiv:1709.08041 前回の記事 の続きです。これでこのシリーズは終わりの予定です。 前回は英語音声合成でしたが、以前書いた DNN日本語音声合成の記事 で使ったデータと同じものを使い、日本語音声合成をやってみましたので、結果を残しておきます。 実験 実験条件 HTSのNIT-ATR503のデモデータ (ライセンス) から、wavデータ503発話を用います。442を学習用、56を評価用、残り5をテスト用にします(※英語音声とtrain/evalの比率は同じです)。継続長モデルは、state-levelではなくphone-levelです。
【音声合成編】Statistical Parametric Speech Synthesis Incorporating Generative Adversarial Networks [arXiv:1709.08041] 10/11 追記: IEEE TASLPのペーパー (Open access) が公開されたようなので、リンクを貼っておきます: https://ieeexplore.ieee.org/document/8063435/ arXiv論文リンク: arXiv:1709.08041 前回の記事 の続きです。音響モデルの学習にGANを使うというアイデアは、声質変換だけでなく音声合成にも応用できます。CMU ARCTIC を使った英語音声合成の実験を行って、ある程度良い結果がでたので、まとめようと思います。音声サンプルだけ聴きたい方は真ん中の方まで読み飛ばしてください。 コード
【声質変換編】Statistical Parametric Speech Synthesis Incorporating Generative Adversarial Networks [arXiv:1709.08041] 10/11 追記: IEEE TASLPのペーパー (Open access) が公開されたようなので、リンクを貼っておきます: https://ieeexplore.ieee.org/document/8063435/ arXiv論文リンク: arXiv:1709.08041 2017年9月末に、表題の 論文 が公開されたのと、nnmnkwii という designed for easy and fast prototyping を目指すライブラリを作ったのもあるので、実装してみました。僕が実験した限りでは、声質変換 (Voice conversion; VC) では
nnmnkwii というDNN音声合成のためのライブラリを公開しましたので、その紹介をします。 https://t.co/p8MnOxkVoH Library to build speech synthesis systems designed for easy and fast prototyping. Open sourced:) — 山本りゅういち (@r9y9) August 14, 2017 ドキュメントの最新版は https://r9y9.github.io/nnmnkwii/latest/ です。以下に、いくつかリンクを貼っておきます。 なぜ作ったのか、その背景の説明と設計 (日本語) クイックガイド DNN英語音声合成のチュートリアル よろしければご覧ください1。 ドキュメントは、だいたい英語でお硬い雰囲気で書いたので、この記事では、日本語でカジュアルに背景などを説明しよう
本家サイト: http://www.cl.ecei.tohoku.ac.jp/nlp100/ 僕が書いたコード: https://github.com/r9y9/nlp100 最近、自然言語処理(NLP)を勉強しようという熱が出ました。ある自然言語処理の問題を解きたかったのですが、 無知のためにか直感がまったく働かず、これはまずいと感じたので、 入門的なのに手を出そうと思った次第です。 結果、毎日やりつづけて、12日かかりました(上図は、横軸が日付、縦軸が達成した問題数です。図はseabornで適当に作りました)。 速度重視1で問題を解きましたが、思ったよりうまく進まず大変だった、というのが正直な感想です。以下、雑多な感想です。 mecab, cabocha, CoreNLPの解析結果をパースするコードを書くのは、ただただ面倒に感じた NER実装しろ、みたいな問題があったらより楽しかったか
この記事では、音声合成ツールキットであるMerlinが、具体的に何をしているのか(特徴量の正規化、無音区間の削除、ポストフィルタなど、コードを読まないとわからないこと)、その中身を僕が理解した範囲でまとめます。 なお、HMM音声合成について簡単に理解していること(HMMとは、状態とは、フルコンテキストラベルとは、くらい)を前提とします。 はじめに Merlinの概要については以下をご覧ください。 Wu, Zhizheng, Oliver Watts, and Simon King. “Merlin: An open source neural network speech synthesis system.” Proc. SSW, Sunnyvale, USA (2016). “A Demonstration of the Merlin Open Source Neural Network
新年はじめての記事ということで、少し遅いですが、あけましておめでとうございます。PCLを対話環境で使いたかったので、お正月の間にPCLのラッパーを作りました1。なぜ作ったのか、どうやって作ったのか、少し整理して書いてみようと思います。 Point Cloud Library (PCL) とは http://www.pointclouds.org/ 問題 PCL はboost、Eigenに依存している、かつtemplateを多く使用しているため、PCLを使用したプロジェクトのコンパイル時間は非常に長くなるという問題があります。twitterで [PCL コンパイル] として検索すると、例えば以下の様なツイートが見つかりますが、完全に同意です。 PCLリンクしてるコードのコンパイルに一分半くらいかかる。つらい — がらえもん(プログラム書く (@garaemon_coder) August 1
はじめに Julia Advent Calendar 2015 22日目の記事です。 Julia の C++ FFI (Foreign Function Interface) である Cxx.jl をしばらく使ってみたので、その感想を書きます。加えて、Cxx.jl を使って作った成果物の話も簡単に書こうと思います(冒頭に貼った画像は、OpenCV.jl でテキトーにカメラから画像をキャプチャしてthresholdingしたやつです)。 Cxx.jl の動作原理については、僕の理解が不十分なため簡単にしか紹介できませんが、そもそも使ったことがある人が稀だと思われるので、感想程度でも役に立てば幸いです。 Cxx.jl とは https://github.com/Keno/Cxx.jl 簡単に説明すると、Cxx.jl とは、Julia から C++ を使用する(e.g. 関数呼び出し、メソッド呼
C++からGoへ みなさん、C++で信号処理のアルゴリズムを書くのはつらいと思ったことはありませんか?C++で書くと速いのはいいけれど、いかんせん書くのが大変、コンパイルエラーは読みづらい、はたまたライブラリをビルドしようとしたら依存関係が上手く解決できず……そんな覚えはないでしょうか?謎のコンパイルエラーに悩みたくない、ガーベジコレクションほしい、Pythonのようにさくっと書きたい、型推論もほしい、でも動作は速い方がいい、そう思ったことはないでしょうか。 そこでGoです。もちろん、そういった思いに完全に答えてくれるわけではありませんが、厳しいパフォーマンスを要求される場合でなければ、Goの方が良い場合も多いと僕は思っています。 とはいえ、まだ比較的新しい言語のため、ライブラリは少なく信号処理を始めるのも大変です。というわけで、僕がC++をやめてGoに移行したことを思い出し、Goでの信号
すぐ忘れるのでメモ。ナイーブベイズの学習アルゴリズムの導出とか、そもそもナイーブベイズが定番過ぎて意外とやったことなかった気もするので、復習がてらやってみた。 ちょっと修正 2013/07/30 ナイーブベイズについて整理 学習アルゴリズムの導出 Naive bayes (ナイーブベイズ) スパムフィルタで使われたことで有名な確率モデルで、シンプルだけどそこそこ実用的なのが良い所。Naive bayesという名前は、特徴ベクトル間に条件付き独立性を仮定してることにある(実際は相関あることが多いけど、まぁ簡単のためって感じ)。具体的に例を挙げて言うと、例えば文書分類タスクの場合、各単語は独立に生起するという仮定を置くことに相当する。 まずはモデルを書き下す。入力データを$\mathbf{x}$(D次元)、ラベルを$y$(離散値)とすると、ナイーブベイズでは以下のように同時確率をモデル化する。
いまいち成果出ないので気分転換にブログをだらだら書いてみるテストです。 まえがき 半年くらい前に、某深層学習に興味を持ってやってみようかなーと思っていた時期があって、その時にGoでいくつかニューラルネットを書きました(参考:Restricted Boltzmann Machines with MNIST - LESS IS MORE、githubに上げたコード)。なぜGoだったかというと、僕がGoに興味を持ち始めていたからというのが大きいです。Goを知る前は、たくさん計算するようなコードを書くときはC++だったけれど、C++は色々つらいものがあるし、GoはC++には速度面で劣るもののそこそこ速く、かつスクリプト的な書きやすさもあります。C++のデバッグやメンテに費やす膨大な時間に比べれば、計算時間が1.5~2倍に増えるくらい気にしないというスタンスで、僕はC++のかわりGoを使おうとしてい
Julia Advent Calendar 2014 9日目の記事です。 はじめに CやFortranの関数をJuliaから呼ぶために使用するccallにおいて、ポインタに関係するハマりどころとその解決法を紹介します。純粋なJuliaを使っている場合にはポインタを意識することはめったにないと思うので、ccall を使う人(計算が重いボトルネック部分をCで書いてJuliaから呼びたい人、Cのライブラリのラッパーを書きたい/書いてる人)を主な読者と想定して記事を書きました(限定的でごめんなさい)。 困った時は、公式ドキュメントの Calling C and Fortran Code を参考にしましょう。 注意: 最新版の公式ドキュメントをいくつか引用していますが、ドキュメントは日々更新されていますので、この記事を読んで頂いた時点とは異なる可能性があることにご注意ください。 こんなとき ccal
はじめに こんばんは。統計的声質変換(以降、簡単に声質変換と書きます)って面白いなーと思っているのですが、興味を持つ人が増えたらいいなと思い、今回は簡単なチュートリアルを書いてみます。間違っている箇所があれば、指摘してもらえると助かります。よろしくどうぞ。 前回の記事(統計的声質変換クッソムズすぎワロタ(実装の話) - LESS IS MORE)では変換部分のコードのみを貼りましたが、今回はすべてのコードを公開します。なので、記事内で示す声質変換の結果を、この記事を読んでいる方が再現することも可能です。対象読者は、特に初学者の方で、声質変換を始めたいけれど論文からコードに落とすにはハードルが高いし、コードを動かしながら仕組みを理解していきたい、という方を想定しています。役に立てば幸いです。 コード https://github.com/r9y9/VoiceConversion.jl Jul
Gamma Process Non-negative Matrix Factorization (GaP-NMF) in Julia 最近 Julia で遊んでいて、その過程で非負値行列因子分解(NMF)のノンパラ版の一つであるGamma Process Non-negative Matrix Factorization (GaP-NMF) を書いてみました。(まぁmatlabコードの写経なんですが) https://github.com/r9y9/BNMF.jl 元論文: Bayesian Nonparametric Matrix Factorization for Recorded Music by Matthew D. Hoffman et al. in ICML 2010. デモ http://nbviewer.ipython.org/github/r9y9/BNMF.jl/blo
C/C++ライブラリのGoラッパーを書くためには、cgoというパッケージを使うのだけど、特にCのポインタ周りにハマりどころが多かったので、少しまとめとく cgoの基礎については、以下の二つを読むことを推奨 https://golang.org/cmd/cgo/ https://code.google.com/p/go-wiki/wiki/cgo この記事では、cgo基本的な使い方と、いくつかポインタ絡みのTipsをまとめる。Tipsのみ必要な場合は、最初の方は飛ばして下さい cgo Cgo enables the creation of Go packages that call C code. https://golang.org/cmd/cgo/ cgoとは、GoからCの関数/型にアクセスするために用いるパッケージのこと。cgoを使えば、GoからCのコードが呼べる。つまり、Cで書かれた
A software engineer/researcher at LY Corporation. I am also a Ph.D. student at at Nagoya University, working with my advisor Prof. Tomoki Toda at the Toda Laboratory. I enjoy both research and software development. My research interests include statistical speech synthesis, voice conversion, singing voice synthesis, and machine learning. Before joining LY Corporation (formerly known as LINE Corpor
モチベーション 手元のへぼマシンでニューラルネットの学習を回わす 半日たっても終わらない 最近だとGPU使って計算を高速化するのが流行りだが、手元にGPUはない Deep Learning in Python with Pylearn2 and Amazon EC2 手元にGPUがない…?大丈夫!Amazon EC2を使えば良さそう!!! というわけで、めんどくさいと言わずにec2にお手軽計算環境を整えます。ec2でGPUが乗ったものだと、g2.2xlargeがよさそうですね。 ちなみに↑の図、pylearn2のtutorialのRestricted Bolzmann MachinesをMNISTで学習した結果なんですが、手元のマシンだとだいたい6時間くらい?(忘れた)だったのがg2.2xlargeだと30分もかかってない(ごめんなさい時間図るの忘れた)。$0.65/hourと安いんだし(
2014/10/12 追記 少なくともGVのコードに致命的なバグがあったことがわかりました。よって、あまりあてにしないでください…(ごめんなさい こんにちは。 最近、統計的声質変換の勉強をしていました。で、メジャーなGMM(混合ガウスモデル)ベースの変換を色々やってみたので、ちょろっと書きます。実は(というほどでもない?)シンプルなGMMベースの方法だと音質クッソ悪くなってしまうんですが、色々試してやっとまともに聞ける音質になったので、試行錯誤の形跡を残しておくとともに、音声サンプルを貼っておきます。ガチ勢の方はゆるりと見守ってください 基本的に、以下の論文を参考にしています T. Toda, A. W. Black, and K. Tokuda, “Voice conversion based on maximum likelihood estimation of spectral pa
はじめに シングルトラックにミックスダウンされた音楽から、その構成する要素(例えば、楽器とか)を分離したいと思うことがある。 音源分離と言えば、最近はNon-negative Matrix Factorization (非負値行列因子分解; NMF) が有名。 実装は非常に簡単だけど、実際にやってみるとどの程度の音源分離性能が出るのか気になったので、やってみる。 と思ったけど、まずNMFについて整理してたら長くなったので、実装は今度にして、まずアルゴリズムを導出してみる。 2014/10/19 追記 実装しました https://github.com/r9y9/julia-nmf-ss-toy NMFの問題設定 NMFとは、与えられた行列を非負という制約の元で因子分解する方法のこと。 音楽の場合、対象はスペクトログラムで、式で書くとわかりやすい。 スペクトログラムを $\mathbf{Y}
一番の違いは、生成モデルか識別モデルか、ということ。それぞれ、 Markov Random Fields (MRF) は生成モデル Conditional Random Fields (CRF) は識別モデル です。 What is exactly the difference between MRF and CRF ここを見ると割とすっきりする。 ただ、少しスムーズに納得できないことがありまして…それは、MRFもCRFもグラフィカルモデルで書くと無向グラフとなること。識別モデルは無向グラフで生成モデルは有向グラフなんじゃ…?と思ってしまう人もいるんじゃないかと思う(いなかったらごめんなさい)。 グラフィカルモデルとしての表現 一般に、生成モデルは有向グラフの形で記述され、識別モデルは無向グラフとして記述される。例えば、隠れマルコフモデル (HMM) は有向グラフで、条件付き確率場 (CR
簡単、フリーで使える音声/音楽信号処理ライブラリが作りたい October 15, 2013 音声を使ったアプリケーションが作りたい、例えば自分の声を誰かの声に変えたい、自動で音痴補正したい、関西弁のゆっくりちゃん作りたい、ギターエフェクト作りたい、とか思う人も少なくないんじゃないかと思う。 信号処理のアプリケーションを一から真面目に作ろうとすると、やるべきことが多すぎて途中で断念してしまうことがある。信号処理って、Hello 信号処理までがホント長くて、File I/O やらstreaming I/O等音声入出力書いたり、スペクトルやケプストラムやらメルケプやらウェーブレットやら特徴抽出書いたり、波形合成のアルゴリズム書いたり、難しい機械学習のアルゴリズム書いたり。本当にやりたいことを実現するためには、専門家はおろか初学者にはハードルが高すぎると思う。リアルタイムでやりたい(よくある状況
次のページ
このページを最初にブックマークしてみませんか?
『LESS IS MORE』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く