タグ

ブックマーク / aidiary.hatenablog.com (15)

  • Open JTalkで音声合成 - 人工知能に関する断創録

    前回は、音声認識エンジンJulius(2013/7/6)を試してみましたが、今回は、オープンソースで開発されている音声合成エンジンのOpen JTalkで遊んでみました。こちらも日の大学が中心になって開発しているようです。そのわりにページが全部英語で敷居の高さを感じるんだけど(笑) 動作環境は、Mac OS X Mountain Lionです。64bit環境なのでインストールにいろいろ苦労しました・・・ 今回は、とりあえず音声を出すことを目的とし、hts_engine_APIとOpen JTalkの関連などはあとで実験しながら勉強していこうと思います。 hts_engine_APIのインストール hts_engine_APIはコンテキストラベル系列と音響モデルを入力として、スペクトル・基周波数・時間長などのパラメータ系列を生成するエンジンです。hts_engine_API単体では、任意

    Open JTalkで音声合成 - 人工知能に関する断創録
    ottonove
    ottonove 2018/11/25
  • シーケンサとシンセサイザー - 人工知能に関する断創録

    Java Sound APIを用いてMIDIデータ(MIDIシーケンスと呼びます)を鳴らす手法です。シーケンサとシンセサイザを用います。曲はTAM MUSIC FACTORYさんから。 midi_engine.jar シーケンサとシンセサイザの関係図 シーケンサは指揮者、シンセサイザは演奏者と考えるとわかりやすいかも。シーケンサは楽譜(MIDIファイル)を見ながらデータの流れの指揮を取り、シンセサイザは実際に音を鳴らして演奏します。MIDIデータはSequenceと呼ばれます。 シーケンサの初期化 // シーケンサー private Sequencer sequencer; // シンセサイザー private Synthesizer synthesizer; private void initSequencer() { try { // シーケンサを開く sequencer = Midi

    シーケンサとシンセサイザー - 人工知能に関する断創録
    ottonove
    ottonove 2018/01/26
  • 線形予測分析(LPC) - 人工知能に関する断創録

    Pythonで音声信号処理(2011/05/14)の第20回目。 以前、ケプストラム分析(2012/12/21)のところで声道の特性を意味するスペクトル包絡を求めた。今回は、線形予測分析(Linear Predictive Coding)という別の手法でスペクトル包絡を求めてみた。この方法で求めたスペクトル包絡は、LPCスペクトル包絡(LPC Spectral Envelope)と呼ばれるとのこと。 線形予測分析 以下の説明は、 Linear Prediction and Levinson-Durbin Algorithm (PDF) の資料を参考にしました。ここでは、詳しい導出は省いて、プログラミングできる結果だけをまとめています。 線形予測分析では、過去の信号から未来の信号を以下の式で予測する。 この式は、時刻nの信号の予測値は、過去k個の信号値に重み係数 a_i で重み付けして足し合

    線形予測分析(LPC) - 人工知能に関する断創録
  • TheanoをWindowsにインストール - 人工知能に関する断創録

    Deep Learningを実装するのによく使われるTheanoというPythonライブラリをWindowsマシンにインストールしたのでそのときの記録。ただ使うだけだったらPythonとnumpy/scipyをインストールした後にpip installs Theanoで普通に使えていた。実際、GPUが貧弱なMacbook Airではこの方法でインストールしていた。今回、PCを買い替えた(2015/1/19)こともあって、NVIDIA社のGPUを使って高速演算できるようにしてみたというわけ。私のマシンは、 OS : Windows 8.1 64bit GPU: NVIDIA GeForce GTX 760 Ti OEM という環境。Theano TutorialにもWindowsへのインストール方法は載っているけどはっきり言ってよくわからない。いろいろ調べていたところ以下の記事が自信満々で手

    TheanoをWindowsにインストール - 人工知能に関する断創録
  • 類似楽曲検索システムを作ろう - 人工知能に関する断創録

    もう1年以上かけて音声信号処理の勉強をしてきました(Pythonで音声信号処理)。ここらで具体的なアプリケーションとして類似楽曲検索の実験をしてみたのでレポートをまとめておきます。言語はPythonです。 前に 類似画像検索システムを作ろう(2009/10/3) Visual Wordsを用いた類似画像検索(2010/2/27) という画像の類似検索に関するエントリを書きましたが、今回は画像ではなく音楽を対象に類似検索をやってみたいと思います! 今回作る類似楽曲検索システムは、従来からよくあるアーティスト名や曲名などテキストで検索するシステムや購買履歴をもとにオススメする協調フィルタリングベースのシステムとは異なります。WAVEファイルやMP3ファイルなどの音楽波形そのものを入力とするのが特徴です。たとえば、「具体的なアーティストや曲名は知らないけれど、この曲とメロディや雰囲気が似た曲がほ

    類似楽曲検索システムを作ろう - 人工知能に関する断創録
    ottonove
    ottonove 2015/04/30
    @@@, 教材, 機械学習, 音楽
  • 線形SVM - 人工知能に関する断創録

    下巻に入って7章のサポートベクトルマシン(Support Vector Machine: SVM)を実装してみます。SVMに関しては、有名なSVMのライブラリ(libsvm)を使ったことがあるだけで、アルゴリズム詳細はPRMLで初めて学習しました。なので変なことを書いていたらコメント欄で指摘してもらえると助かります。 まずは、一番簡単な線形SVMを実装してみます。今までと同様に直線(超平面)でデータが完全に分離できる場合です。PRMLの7章には特に説明がありませんが、カーネル関数に下の線形カーネル(データのただの内積)を用いた場合に相当するようです。このカーネル関数を多項カーネルやガウシアンカーネルに変更すると線形分離不可能なデータも分類できるようになるとのこと。非線形SVMは次回ためしてみます。 まず、SVMの識別関数は、式(7.1)で表せます。 今までと違ってバイアスパラメータをまとめ

    線形SVM - 人工知能に関する断創録
  • 人工知能に関する断想録

    Deep Learningの訓練終了など任意のメッセージを特定のSlackチャネルに投稿できるボットを作りました。 Yatta Kun プログラミングは不要で curl というコマンドラインツールから簡単に投稿できるので非常に便利です。可愛いくて便利なので作り方を紹介します。 職場などでみんなが使っているワークスペースで実験すると迷惑がかかる可能性があるので、最初は個人の実験用ワークスペースを作ってしまうのが良いと思います。無料でできます。 1. Incoming Webhookをインストール SlackアプリのページからIncoming Webhookをインストールします。Slackアプリページは、 https://[workspace name].slack.com/apps/ から行けます。 workspace name はワークスペース名です。 Incoming Webhook で

    人工知能に関する断想録
  • パターン認識と機械学習(PRML)まとめ - 人工知能に関する断創録

    2010年は、パターン認識と機械学習(PRML)を読破して、機械学習の基礎理論とさまざまなアルゴリズムを身につけるという目標(2010/1/1)をたてています。もうすでに2010年も半分以上過ぎてしまいましたが、ここらでまとめたページを作っておこうと思います。ただ漫然と読んでると理解できてるかいまいち不安なので、Python(2006/12/10)というプログラミング言語で例を実装しながら読み進めています。Pythonの数値計算ライブラリScipy、Numpyとグラフ描画ライブラリのmatplotlibを主に使ってコーディングしています。実用的なコードでないかもしれませんが、ご参考まで。 PRMLのPython実装 PRML読書中(2010/3/26) 多項式曲線フィッティング(2010/3/27) 最尤推定、MAP推定、ベイズ推定(2010/4/4) 分類における最小二乗(2010/4/

    パターン認識と機械学習(PRML)まとめ - 人工知能に関する断創録
  • Pythonでサウンドスペクトログラム - 人工知能に関する断創録

    Pythonで音声信号処理(2011/05/14) 今回は、さまざまな音声のスペクトログラム(spectrogram)を求めてみたいと思います。科学捜査班が声紋分析で使っているやつですね。こういうの。 名前がスペクトログラムってくらいなのでフーリエ変換で求めるスペクトル(spectrum)と関係があります。スペクトルは、離散フーリエ変換(2011/6/11)でも紹介しましたが、音声波形の短時間(512サンプルなど)の波形データの中にどのような周波数成分がどれだけ含まれるかを表した図です。スペクトルは、横軸が周波数で縦軸が強度(振幅の2乗)となっています。スペクトルのグラフには、時間が入ってこないのが特徴的。時間はFFTをかける波形の位置で決まるので時間はFFTする前にあらかじめ固定されています。ちなみに、元の波形は横軸が時間なので時間領域、スペクトルは横軸が周波数なので周波数領域といいます

    Pythonでサウンドスペクトログラム - 人工知能に関する断創録
  • 集合知プログラミング - 人工知能に関する断創録

    集合知プログラミング 作者: Toby Segaran,當山仁健,鴨澤眞夫出版社/メーカー: オライリージャパン発売日: 2008/07/25メディア: 大型購入: 85人 クリック: 2,153回この商品を含むブログ (267件) を見る WebサービスAPIを解説してるだろうと勝手に思ってスルーしてたのだが違ってた。Webデータの解析に使えるようなデータマイニング、機械学習アルゴリズムの入門書だ。最近、学会でもWebデータの解析に関する発表が多いが、このはその分野の入門書としてちょうどよいかも。 扱っている内容は、協調フィルタリング、階層的クラスタリング、K平均法、検索エンジン、遺伝的アルゴリズム、ベイズ分類、決定木、K近傍法、サポートベクトルマシン、遺伝的プログラミングなど幅広い。こののいいところはただ理論を解説するだけではなくてWebから収集した実データを使って実際にPy

    集合知プログラミング - 人工知能に関する断創録
  • 波形を見る - 人工知能に関する断創録

    Pythonで音声信号処理(2011/05/14) サイン波 次は音の波をプロットして目に見えるようにしてみます。グラフの描画にはPythonのmatplotlibを使います。WAVEファイルには音をディジタル化(標化 + 量子化)したデータがそのまま含まれているのでそれを読み出します。WAVEファイルの詳細なフォーマットはwavファイルフォーマットが参考になりました。自分でバイナリを分析してもよいですが、waveモジュールがやってくれます。 #coding:utf-8 import wave from numpy import * from pylab import * def printWaveInfo(wf): """WAVEファイルの情報を取得""" print "チャンネル数:", wf.getnchannels() print "サンプル幅:", wf.getsampwidt

    波形を見る - 人工知能に関する断創録
  • WAVEファイルの再生 - 人工知能に関する断創録

    Pythonで音声信号処理(2011/05/14) まずは基ということでWAVEファイルを再生してみます。Pythonにはwaveモジュールが用意されていてWAVEファイルの読み書き、情報の抽出はできます。しかし、waveモジュールだけでは音を再生できないのでpyaudioという別のモジュールと組み合わせて使います。pyaudioは別途インストールが必要。 #coding: utf-8 import wave import pyaudio def printWaveInfo(wf): """WAVEファイルの情報を取得""" print "チャンネル数:", wf.getnchannels() print "サンプル幅:", wf.getsampwidth() print "サンプリング周波数:", wf.getframerate() print "フレーム数:", wf.getnfra

    WAVEファイルの再生 - 人工知能に関する断創録
  • Pythonで音声信号処理 - 人工知能に関する断創録

    今年の目標(2011/1/1)の1つに音声認識技術の深耕というのを立ててます。いきなり音声認識をやるのは知識不足でかなり大変だということが分かったので、まずは音声のいろんな性質や信号処理の技術を一つ一つ試しながら習得していくことにしました。 音声信号処理ではよくMatlabが使われるようなのですが、 Matlabは高くて買えない(フリーのOctaveってのもあります) すでに使っているPython、Rと文法が似ていて混乱する というわけでMatlabはやめてPythonを使います。SciPyにフーリエ変換の機能があったのでたぶん同じようなことができるでしょう。Pythonのいろんな音声関係のライブラリなんかも紹介できればと思います。 当面の目標は、簡単な類似楽曲検索システムを作ることです。その後は、いろんなツール(HTKなど)を駆使して音声認識システムを作りたいと思ってます。 このページは

    Pythonで音声信号処理 - 人工知能に関する断創録
  • 正弦波の合成 - 人工知能に関する断創録

    Pythonで音声信号処理(2011/05/14) 今までは、既存の音声ファイルを再生したり、波形を見たりしてきましたが、今回は、音の波の基となる正弦波や正弦波を合成して作れる三角波、矩形波、ノコギリ波などを自前で作って音を鳴らしてみたいと思います。正弦波の基式は、 です。ここで、Aは振幅、f0は基周波数、tは時間です。今回は、コンピュータで音を扱うので時間を離散化します。 ここで、fsはサンプリング周波数(1秒間のサンプル数)、nはサンプルのインデックスです。これを先の正弦波の式に代入すると となって、tの式をnの式に変換できます。この式を使うと、nサンプル目の波の値が計算できます。 正弦波を作る まずは、ドレミファソラシドの各音階の正弦波を作って鳴らしてみます。正弦波はこんな形。 音だと ドは262Hz、ラは440Hzというように周波数が決められています。周波数の間には、十二平均

    正弦波の合成 - 人工知能に関する断創録
  • SPTKの使い方 (1) インストール・波形描画・音声再生 - 人工知能に関する断創録

    SPTK(Signal Processing Toolkit)という音声信号処理のツールの使い方を紹介していきます。 SPTKには、音声を分析するための豊富なコマンドが約120個も提供されています。今までPythonで窓関数、FFT、MFCC、LPCなどを苦労して実装してきました(Pythonで音声信号処理)が、これらの代表的な音声処理は、SPTKで提供されているコマンドを組み合わせるだけで簡単に実行できます。 SPTKには、分厚いマニュアルと豊富なサンプル集がついているのでそれをベースに少しずつ使い方を整理していきたいと思います。今後の音声プロジェクトでも使用していく予定です。 インストール 主にLinuxマシンが対象のツールなのでソースからのコンパイルが必要。WindowsならCygwinやMinGWが必要でした。SPTK-3.5.tar.gzをダウンロードして tar xvzf SP

    SPTKの使い方 (1) インストール・波形描画・音声再生 - 人工知能に関する断創録
  • 1