Kaldiプレイブック(ansible)
AnsibleによるKaldiの環境設定
研究室に新人が来たときや新入社員が入ったとき、PCを買い替えたときなどに一から環境設定するのは面倒です。
そこで環境設定が楽にできることで有名なansibleを用いてKaldiの環境設定をVirtul Box上のCentOSに設定してみました。
Kaldiは音声認識でよく使われるツールです。
環境設定順序
1:Virtual Boxのダウンロード
2:Vagrantの設定(CentOS)
3:Ansbleの設定
1は解説が多いので下記などを参考にしてもらったら良いです。
Vagrantの設定
1:Vagrantをインストール
下記を参考にして下さい。
http://osdn.jp/magazine/15/02/13/200000
2:Vagrantの設定ファイル
下記のようなVagrantfileを作成します。
vagrant init
で初期のVagrantfileを作成可能です。
エラーが出た場合の一つの解決方法
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.define "ホスト名指定" do |node|
node.vm.box = "chef/centos-6.6"
node.vm.hostname = "ホスト名指定"
node.vm.network :private_network, ip: "ipアドレス指定"
end
end
ホスト名とipアドレスを指定して仮想のOSを立てます。
下記のコマンドを入力するとVagrantが立ち上がり設定が行なわれます。
vagrant up
もし404エラーが出た場合
欲しいcentosのボックスをadd で導入します。
vagrant box add centos http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.6-x86_64-v20150426.box
導入されたosの名前を確認します。
vagrant box list
下記に示されるところに導入したボックス名を記入します。
node.vm.box = "chef/centos-6.6"
再度、立ち上げを行います。
vagrant up
sshでansibleに接続するには下記ので設定が必要なので予め設定(登録されたipアドレスがvagrantファイルと同一かチェックする必要あり)
vagrant ssh-config --host 192.168.33.10 >> ~/.ssh/config
Ansibleの設定
Ansibleで設定するホストを指定するため下記のファイルを作成
ansible_hosts
[先ほど指定したhost名]
先ほど指定したipアドレス ansible_ssh_private_key_file=Vagrantで作成されるプライベートキー ansible_ssh_user=vagrant
プライベートキーは下記のいずれかの直下にプライベートキーが作成される。
1:~/.vagrant.d/
2:Vagrantを設定したフォルダ/.vagrant/machines/作成したホスト名/virtualbox/
どちらかのプライベートキーを使用する。
過去にvagrantを使用してhostを作成したこごtが場合はipアドレスを変更しないとアクセス出来ないので注意が必要です。
ここからkaldiの設定を行なうansibleのymlを作成
kaldi.yml
---
- hosts: 設定したホスト名
user: vagrant
sudo: yes
tasks:
- name: Upgrate Package
yum: name=* state=latest
sudo: yes
tags: update
- name: Install Package
yum: name={{ item }} state=present
sudo: yes
when: ansible_os_family == 'RedHat'
with_items:
- atlas-sse3-devel
- atlas-devel
- nkf
- git
- gcc-c++
- zlib-devel
- automake
- libtool
- autoconf
- patch
- subversion
- lynx
- graphviz
- bc
- vim
tags: Install
- name: Download Kaldi
git: repo=https://github.com/kaldi-asr/kaldi.git dest=/home/vagrant/kaldi accept_hostkey=yes
sudo: yes
tags: kaldi
- name: Install Kaldi
command: make j 4 chdir=/home/vagrant/kaldi/tools
sudo: yes
tags: kaldiInstall
- name: Install Kaldi2
command: ./configure chdir=/home/vagrant/kaldi/src
sudo: yes
tags: kaldiInstall2
- name: Install Kaldi3
command: make -j 4 depend chdir=/home/vagrant/kaldi/src
sudo: yes
tags: kaldiInstall3
- name: Install Kaldi4
command: make -j 4 chdir=/home/vagrant/kaldi/src
sudo: yes
tags: kaldiInstall4
RNN部分でエラーが出るので切り分けました。原因が分かったら更新します。
- name: Install RNN
command: ./install.sh chdir=/home/vagrant/kaldi/tools
sudo: yes
tags: InstallRNN
- name: Install RNN2
command: ./install_atlas.sh chdir=/home/vagrant/kaldi/tools
sudo: yes
tags: InstallRNN2
言語モデルのツールでsrilmを使用する場合は別途申請が必要だが、RNNの場合は申請しなくても良い。
SRILMダウンロードページ
http://www.speech.sri.com/projects/srilm/download.html
下記のコマンドを実行するとansibleが環境を作成してくれる!!
ansible-playbook -i ansible_hosts kaldi.yml
他にも機械学習、音声認識、自然言語処理で環境が面倒だと思う方はansibleの導入を検討してみてはいかがでしょうか?
PS:
仮想環境にアクセスしたいとき
ssh IPアドレス -i プライベートキー
もしくは
vagrant ssh host
ファイルを送りたいとき
scp -F ~/.ssh/config ファイル名 vagrant@host:~/
もしくは
sudo sftp -F ~/.ssh/config -i .vagrant/machines/host/virtualbox/private_key 192.168.22.10
ansible トラブル解決参考サイト
Author And Source
この問題について(Kaldiプレイブック(ansible)), 我々は、より多くの情報をここで見つけました https://qiita.com/GushiSnow/items/17294763b379c588ad3e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .