「Julius を使った音声認識」の版間の差分

提供: VoIP-Info.jp
移動先: 案内検索
(Asterisk 1.6.1 に対応したので、更新)
 
(2人の利用者による、間の2版が非表示)
3行目: 3行目:
 
<br/>なお、以下の番号で山手線の駅名を認識するデモを用意してあります。
 
<br/>なお、以下の番号で山手線の駅名を認識するデモを用意してあります。
 
<pre>055-287-7709</pre>
 
<pre>055-287-7709</pre>
 +
 +
=== 更新履歴 ===
 +
* Asterisk 1.6.1 系対応。(2009/11/6)
  
 
=== 材料 ===
 
=== 材料 ===
8行目: 11行目:
 
<ul>
 
<ul>
 
* x86 系の Linux 環境
 
* x86 系の Linux 環境
* Asterisk 1.4 系のソース<br/>2009/10/6 の最新版<br/>http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.4.26.2.tar.gz
+
* Asterisk 1.4 / 1.6.1 系のソース
* Julius ソース<br/>http://sourceforge.jp/projects/julius/downloads/37582/julius-4.1.2.tar.gz/
+
: 2009/11/6 の最新版:
* Julius ディクテーション実行キット<br/>http://prdownloads.sourceforge.jp/julius/28977/dictation-kit-v3.2.tar.gz
+
: http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.4.26.3.tar.gz
* Asterisk 連携用パッチと Julius プラグインのソース<br/>http://www2.iweave.jp/asterisk-julius/asterisk-julius-20091006.tgz
+
: http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.6.1.9.tar.gz
 +
* Julius ソース
 +
: http://sourceforge.jp/projects/julius/downloads/37582/julius-4.1.2.tar.gz/
 +
* Julius ディクテーション実行キット
 +
: http://prdownloads.sourceforge.jp/julius/28977/dictation-kit-v3.2.tar.gz
 +
* Asterisk 連携用パッチと Julius プラグインのソース
 +
: http://www2.iweave.jp/asterisk-julius/asterisk-julius-20091106.tgz
 
</ul>
 
</ul>
* デモ環境<br/>このデモでは、音声合成に galatea talk + unidic を利用しています。
+
* デモ環境
 +
:このデモでは、音声合成に galatea talk + unidic を利用しています。
 
<ul>
 
<ul>
* 山手線の駅名の認識デモ<br/>http://www2.iweave.jp/asterisk-julius/asterisk-julius-20091006-jr.tgz
+
* 山手線の駅名の認識デモ
* OSC 2009 Okinawa で使ったデモ<br/>http://www2.iweave.jp/asterisk-julius/asterisk-julius-20091006-yui.tgz
+
: http://www2.iweave.jp/asterisk-julius/asterisk-julius-20091006-jr.tgz
 +
* OSC 2009 Okinawa で使ったデモ
 +
: http://www2.iweave.jp/asterisk-julius/asterisk-julius-20091006-yui.tgz
 
</ul>
 
</ul>
* Asterisk 1.6 系のご要望はありますか?
 
  
 
=== 環境の構築 ===
 
=== 環境の構築 ===
43行目: 54行目:
 
<blockquote><pre>
 
<blockquote><pre>
 
# cd /root/work
 
# cd /root/work
# wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.4.26.2.tar.gz
+
# wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.4.26.3.tar.gz
 
# w3m http://sourceforge.jp/projects/julius/downloads/37582/julius-4.1.2.tar.gz/
 
# w3m http://sourceforge.jp/projects/julius/downloads/37582/julius-4.1.2.tar.gz/
 
# w3m http://prdownloads.sourceforge.jp/julius/28977/dictation-kit-v3.2.tar.gz
 
# w3m http://prdownloads.sourceforge.jp/julius/28977/dictation-kit-v3.2.tar.gz
# wget http://www2.iweave.jp/asterisk-julius/asterisk-julius-20091006.tgz
+
# wget http://www2.iweave.jp/asterisk-julius/asterisk-julius-20091106.tgz
 
# wget http://www2.iweave.jp/asterisk-julius/asterisk-julius-20091006-jr.tgz
 
# wget http://www2.iweave.jp/asterisk-julius/asterisk-julius-20091006-jr.tgz
 
# wget http://www2.iweave.jp/asterisk-julius/asterisk-julius-20091006-yui.tgz
 
# wget http://www2.iweave.jp/asterisk-julius/asterisk-julius-20091006-yui.tgz
71行目: 82行目:
 
# make install
 
# make install
 
</pre></blockquote>
 
</pre></blockquote>
* 参考ページ<br/>http://julius.sourceforge.jp/juliusbook/ja/desc_install.html#id2486532
+
* 参考ページ
 +
: http://julius.sourceforge.jp/juliusbook/ja/desc_install.html#id2486532
 
</ul>
 
</ul>
  
 
* Julius プラグインビルド
 
* Julius プラグインビルド
 
<ul>
 
<ul>
* /root/work に asterisk-julius-20091006.tgz を展開する。
+
* /root/work に asterisk-julius-20091106.tgz を展開する。
 
<blockquote><pre>
 
<blockquote><pre>
 
# cd /root/work
 
# cd /root/work
# tar zxf asterisk-julius-20091006.tgz
+
# tar zxf asterisk-julius-20091106.tgz
 
</pre></blockquote>
 
</pre></blockquote>
 
* ソースを Julius のディレクトリにコピーする。
 
* ソースを Julius のディレクトリにコピーする。
94行目: 106行目:
 
* 音響モデルの用意
 
* 音響モデルの用意
 
<ul>
 
<ul>
* /root/work に dictation-kit-v3.2.tar.gz を展開する。<br/>ビルド作業はありません。
+
* /root/work に dictation-kit-v3.2.tar.gz を展開する。
 +
:ビルド作業はありません。
 
<blockquote><pre>
 
<blockquote><pre>
 
# cd /root/work
 
# cd /root/work
101行目: 114行目:
 
</ul>
 
</ul>
  
* Asterisk 連携アプリケーションのビルド
+
* Asterisk 連携アプリケーションのビルド(Asterisk 1.4 系の場合)
 
<ul>
 
<ul>
 
* /root/work に Asterisk 1.4 系のソースを展開する。
 
* /root/work に Asterisk 1.4 系のソースを展開する。
108行目: 121行目:
 
# tar zxf asterisk-1.4.*.tar.gz
 
# tar zxf asterisk-1.4.*.tar.gz
 
</pre></blockquote>
 
</pre></blockquote>
* /root/work に asterisk-julius-20091006.tgz を展開する(展開していない場合)。
+
* /root/work に asterisk-julius-20091106.tgz を展開する(展開していない場合)。
 
<blockquote><pre>
 
<blockquote><pre>
# tar zxf asterisk-julius-20091006.tgz
+
# tar zxf asterisk-julius-20091106.tgz
 
</pre></blockquote>
 
</pre></blockquote>
 
* app_talkdetect.c にパッチを当てる。
 
* app_talkdetect.c にパッチを当てる。
128行目: 141行目:
 
* /etc/asterisk/sip.conf 等を編集して、電話機を登録する。
 
* /etc/asterisk/sip.conf 等を編集して、電話機を登録する。
 
* すでにビルド環境がある場合は、その環境に app_talkdetect.c をコピーして、再ビルド&インストールしてください。
 
* すでにビルド環境がある場合は、その環境に app_talkdetect.c をコピーして、再ビルド&インストールしてください。
 +
</ul>
 +
 +
* Asterisk 連携アプリケーションのビルド(Asterisk 1.6.1 系の場合)
 +
<ul>
 +
* Asterisk 1.4 系の手順に準じる。
 +
* ただし、パッチファイルとして app_talkdetect-julius.patch-1.6 を利用する。
 
</ul>
 
</ul>
  
138行目: 157行目:
 
# tar zxf work/asterisk-julius-20091006-jr.tgz
 
# tar zxf work/asterisk-julius-20091006-jr.tgz
 
</pre></blockquote>
 
</pre></blockquote>
* /root/work に asterisk-julius-20091006.tgz を展開する(展開していない場合)。
+
* /root/work に asterisk-julius-20091106.tgz を展開する(展開していない場合)。
 
<blockquote><pre>
 
<blockquote><pre>
 
# cd /root/work
 
# cd /root/work
# tar zxf asterisk-julius-20091006.tgz
+
# tar zxf asterisk-julius-20091106.tgz
 
</pre></blockquote>
 
</pre></blockquote>
* 番号計画をコピーする。
+
* 番号計画をコピーする(Asterisk 1.4 系の場合)。
 
<blockquote><pre>
 
<blockquote><pre>
 
# cp /root/work/asterisk-julius/extensions.ael /etc/asterisk
 
# cp /root/work/asterisk-julius/extensions.ael /etc/asterisk
 +
</pre></blockquote>
 +
* 番号計画をコピーする(Asterisk 1.6.1 系の場合)。
 +
<blockquote><pre>
 +
# cp /root/work/asterisk-julius/extensions.ael-1.6 /etc/asterisk/extensions.ael
 
</pre></blockquote>
 
</pre></blockquote>
 
* default コンテキストの 200 番でデモが利用できる。
 
* default コンテキストの 200 番でデモが利用できる。
157行目: 180行目:
 
# tar zxf work/asterisk-julius-20091006-yui.tgz
 
# tar zxf work/asterisk-julius-20091006-yui.tgz
 
</pre></blockquote>
 
</pre></blockquote>
* /root/work に asterisk-julius-20091006.tgz を展開する(展開していない場合)。
+
* /root/work に asterisk-julius-20091106.tgz を展開する(展開していない場合)。
 
<blockquote><pre>
 
<blockquote><pre>
 
# cd /root/work
 
# cd /root/work
# tar zxf asterisk-julius-20091006.tgz
+
# tar zxf asterisk-julius-20091106.tgz
 
</pre></blockquote>
 
</pre></blockquote>
* 番号計画をコピーする(コピーしていない場合)。
+
* 番号計画をコピーする(コピーしていない場合、Asterisk 1.4 系の場合)。
 
<blockquote><pre>
 
<blockquote><pre>
 
# cp /root/work/asterisk-julius/extensions.ael /etc/asterisk
 
# cp /root/work/asterisk-julius/extensions.ael /etc/asterisk
 +
</pre></blockquote>
 +
<blockquote><pre>
 +
* 番号計画をコピーする(コピーしていない場合、Asterisk 1.6.1 系の場合)。
 +
# cp /root/work/asterisk-julius/extensions.ael-1.6 /etc/asterisk/extensions.ael
 
</pre></blockquote>
 
</pre></blockquote>
 
* default コンテキストの 201 番でデモが利用できる。
 
* default コンテキストの 201 番でデモが利用できる。
188行目: 215行目:
 
</ul>
 
</ul>
  
* OSC 2009 Okinawa で使ったデモ<br/>ゆいレールの駅名を認識します。
+
* OSC 2009 Okinawa で使ったデモ
 +
: ゆいレールの駅名を認識します。
 
<ul>
 
<ul>
 
* Asterisk を再起動する。
 
* Asterisk を再起動する。
204行目: 232行目:
 
</pre></blockquote>
 
</pre></blockquote>
 
* 接続している電話機から 201 番をダイアルする。
 
* 接続している電話機から 201 番をダイアルする。
* ゆいレールの情報はこちらで確認下さい。<br/>右側に駅名が記載されています。<br/>http://www.yui-rail.co.jp/
+
* ゆいレールの情報はこちらで確認下さい。
 +
: 右側に駅名が記載されています。
 +
: http://www.yui-rail.co.jp/
 
</ul>
 
</ul>
  
 
=== 利用方法 ===
 
=== 利用方法 ===
 
* Julius の設定
 
* Julius の設定
** plugindir<br/>プラグインが存在するディレクトリを指定する。
+
<ul>
** input<br/>音源の指定。Asterisk 連携では udpadin を指定する。
+
* plugindir
** udpport<br/>Astersik 連携のポートを指定する(オプション)
+
:プラグインが存在するディレクトリを指定する。
** 設定ファイルの例(該当部分のみ抜粋)
+
* input
 +
: 音源の指定。Asterisk 連携では udpadin を指定する。
 +
* udpport
 +
: Astersik 連携のポートを指定する(オプション)
 +
* 設定ファイルの例(該当部分のみ抜粋)
 
<blockquote><pre>
 
<blockquote><pre>
 
-plugindir /root/work/julius-4.1.2/plugin
 
-plugindir /root/work/julius-4.1.2/plugin
218行目: 252行目:
 
-udpport 12346
 
-udpport 12346
 
</pre></blockquote>
 
</pre></blockquote>
 +
</ul>
 
* Julius の辞書
 
* Julius の辞書
** 認識した結果(単語)が、そのまま、Asterisk に通知される。
+
<ul>
** 例えば、数字(英数字)にすると、番号計画の中で利用しやすくなる。
+
* 認識した結果(単語)が、そのまま、Asterisk に通知される。
 +
* 例えば、数字(英数字)にすると、番号計画の中で利用しやすくなる。
 +
</ul>
 
* 番号計画での利用方法
 
* 番号計画での利用方法
** 認識させる
+
<ul>
*** チャネル変数 JULIUS_PORT に julius 連携用の UDP ポートを指定する。(オプション)
+
* 認識させる
*** アプリケーション BackgroundDetect に、プロンプトを指定して、実行する。<br/>プロンプトには、認識させたい時間分の無音部分を音声後に含ませる。
+
<ul>
** 認識結果を利用する
+
* チャネル変数 JULIUS_PORT に julius 連携用の UDP ポートを指定する。(オプション)
*** 単語を認識したときは、talk エクステンションに goto する。
+
* アプリケーション BackgroundDetect に、プロンプトを指定して、実行する。
*** 認識した単語は、チャネル変数 JULIUS_RECOG にセットされる。
+
: プロンプトには、認識させたい時間分の無音部分を音声後に含ませる。
 +
</ul>
 +
* 認識結果を利用する
 +
<ul>
 +
* 単語を認識したときは、talk エクステンションに goto する。
 +
* 認識した単語は、チャネル変数 JULIUS_RECOG にセットされる。
 +
</ul>
 +
</ul>
  
 
=== 制限 ===
 
=== 制限 ===
* 音声認識は、同時に1チャネルのみ利用可能です。<br/>複数チャネルで利用した場合は、正しい結果を得ることができません。
+
* 音声認識は、同時に1チャネルのみ利用可能です。
 +
: 複数チャネルで利用した場合は、正しい結果を得ることができません。
 
* 登録されていない単語に対しても、常に登録した単語として認識してしまいます。
 
* 登録されていない単語に対しても、常に登録した単語として認識してしまいます。
 
* 騒がしい環境で利用すると、ノイズを音声とみなし、登録した単語として誤認識します。
 
* 騒がしい環境で利用すると、ノイズを音声とみなし、登録した単語として誤認識します。
243行目: 288行目:
  
 
=== 備考 ===
 
=== 備考 ===
* 音声認識 Julius のページ<br/>http://julius.sourceforge.jp/
+
* 音声認識 Julius のページ
* 音声合成 galatea talk のページ<br/>http://www.sp.nitech.ac.jp/~demo/gtalk/demo.php<br/>http://sourceforge.jp/projects/galateatalk/
+
: http://julius.sourceforge.jp/
* 形態素解析辞書 unidic のページ<br/>http://www.tokuteicorpus.jp/dist/
+
* 音声合成 galatea talk のページ
 +
: http://www.sp.nitech.ac.jp/~demo/gtalk/demo.php
 +
: http://sourceforge.jp/projects/galateatalk/
 +
* 形態素解析辞書 unidic のページ
 +
: http://www.tokuteicorpus.jp/dist/
 +
 
 +
=== 補足ファイル ===
 +
* 山手線音声ファイル AqesTalk版
 +
:http://ftp.voip-info.jp/asterisk/sounds/misc/jr-aqt.zip
 +
:上記のデモ環境の音声ファイルと交換して使用できます。

2009年11月6日 (金) 15:30時点における最新版

Asterisk で音声認識

Asterisk と Julius を連携させて、音声認識を実現する。
なお、以下の番号で山手線の駅名を認識するデモを用意してあります。

055-287-7709

更新履歴

  • Asterisk 1.6.1 系対応。(2009/11/6)

材料

  • 必ず必要なもの
  • デモ環境
このデモでは、音声合成に galatea talk + unidic を利用しています。

環境の構築

  • 期待するディレクトリ構成
/root
|-- work
|   |-- dictation-kit-v3.2
|   |   `-- model
|   |       `-- phone_m
|   `-- julius-4.1.2
|       `-- plugin
|-- jr
`-- yui
  • 事前準備
    • /root/work ディレクトリの準備
    # mkdir /root/work
    
    • ソースの取得
    # cd /root/work
    # wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.4.26.3.tar.gz
    # w3m http://sourceforge.jp/projects/julius/downloads/37582/julius-4.1.2.tar.gz/
    # w3m http://prdownloads.sourceforge.jp/julius/28977/dictation-kit-v3.2.tar.gz
    # wget http://www2.iweave.jp/asterisk-julius/asterisk-julius-20091106.tgz
    # wget http://www2.iweave.jp/asterisk-julius/asterisk-julius-20091006-jr.tgz
    # wget http://www2.iweave.jp/asterisk-julius/asterisk-julius-20091006-yui.tgz
    
  • Julius ビルド
    • /root/work に julius-4.1.2.tar.gz を展開する。
    # cd /root/work
    # tar zxf julius-4.1.2.tar.gz
    
    • julius/Makefile.in の LDFLAGS の定義の最後に -rdynamic を追加する。
    # cd julius-4.1.2
    # sed 's/^\(LDFLAGS=.*\)/\1 -rdynamic/' julius/Makefile.in > julius/Makefile.in.temp
    # mv julius/Makefile.in.temp julius/Makefile.in
    
    • ビルド&インストール
    # ./configure
    # make
    # make install
    
    • 参考ページ
    http://julius.sourceforge.jp/juliusbook/ja/desc_install.html#id2486532
  • Julius プラグインビルド
    • /root/work に asterisk-julius-20091106.tgz を展開する。
    # cd /root/work
    # tar zxf asterisk-julius-20091106.tgz
    
    • ソースを Julius のディレクトリにコピーする。
    # cp asterisk-julius/udpadin.c julius-4.1.2/plugin
    
    • プラグインをビルドする。
    # cd julius-4.1.2/plugin
    # gcc -shared -o udpadin.jpi udpadin.c
    
  • 音響モデルの用意
    • /root/work に dictation-kit-v3.2.tar.gz を展開する。
    ビルド作業はありません。
    # cd /root/work
    # tar zxf dictation-kit-v3.2.tar.gz
    
  • Asterisk 連携アプリケーションのビルド(Asterisk 1.4 系の場合)
    • /root/work に Asterisk 1.4 系のソースを展開する。
    # cd /root/work
    # tar zxf asterisk-1.4.*.tar.gz
    
    • /root/work に asterisk-julius-20091106.tgz を展開する(展開していない場合)。
    # tar zxf asterisk-julius-20091106.tgz
    
    • app_talkdetect.c にパッチを当てる。
    # cd asterisk-1.4.*
    # patch -p1 < ../asterisk-julius/app_talkdetect-julius.patch
    
    • Asterisk のビルドオプションを選択、ビルドして、インストールする。
    # ./configure
    # make menuconfig
    # make
    # make install
    # make samples
    # make config
    
    • /etc/asterisk/sip.conf 等を編集して、電話機を登録する。
    • すでにビルド環境がある場合は、その環境に app_talkdetect.c をコピーして、再ビルド&インストールしてください。
  • Asterisk 連携アプリケーションのビルド(Asterisk 1.6.1 系の場合)
    • Asterisk 1.4 系の手順に準じる。
    • ただし、パッチファイルとして app_talkdetect-julius.patch-1.6 を利用する。

デモ環境構築

  • 山手線の駅名の認識デモ
    • /root に asterisk-julius-20091006-jr.tgz を展開する。
    # cd /root
    # tar zxf work/asterisk-julius-20091006-jr.tgz
    
    • /root/work に asterisk-julius-20091106.tgz を展開する(展開していない場合)。
    # cd /root/work
    # tar zxf asterisk-julius-20091106.tgz
    
    • 番号計画をコピーする(Asterisk 1.4 系の場合)。
    # cp /root/work/asterisk-julius/extensions.ael /etc/asterisk
    
    • 番号計画をコピーする(Asterisk 1.6.1 系の場合)。
    # cp /root/work/asterisk-julius/extensions.ael-1.6 /etc/asterisk/extensions.ael
    
    • default コンテキストの 200 番でデモが利用できる。
  • OSC 2009 Okinawa で使ったデモ
    • /root に asterisk-julius-20091006-yui.tgz を展開する。
    # cd /root
    # tar zxf work/asterisk-julius-20091006-yui.tgz
    
    • /root/work に asterisk-julius-20091106.tgz を展開する(展開していない場合)。
    # cd /root/work
    # tar zxf asterisk-julius-20091106.tgz
    
    • 番号計画をコピーする(コピーしていない場合、Asterisk 1.4 系の場合)。
    # cp /root/work/asterisk-julius/extensions.ael /etc/asterisk
    
    * 番号計画をコピーする(コピーしていない場合、Asterisk 1.6.1 系の場合)。
    # cp /root/work/asterisk-julius/extensions.ael-1.6 /etc/asterisk/extensions.ael
    
    • default コンテキストの 201 番でデモが利用できる。

デモの実行

  • 山手線の駅名の認識デモ
    • Asterisk を再起動する。
    # /etc/init.d/asterisk restart
    

    あるいは

    # /etc/rc.d/init.d/asterisk restart
    
    • Julius を起動する。
    # cd /root
    # julius -C jr/jconf-jr
    
    • 接続している電話機から 200 番をダイアルする。
  • OSC 2009 Okinawa で使ったデモ
ゆいレールの駅名を認識します。
    • Asterisk を再起動する。
    # /etc/init.d/asterisk restart
    

    あるいは

    # /etc/rc.d/init.d/asterisk restart
    
    • Julius を起動する。
    # cd /root
    # julius -C yui/jconf-yui
    
    • 接続している電話機から 201 番をダイアルする。
    • ゆいレールの情報はこちらで確認下さい。
    右側に駅名が記載されています。
    http://www.yui-rail.co.jp/

利用方法

  • Julius の設定
    • plugindir
    プラグインが存在するディレクトリを指定する。
    • input
    音源の指定。Asterisk 連携では udpadin を指定する。
    • udpport
    Astersik 連携のポートを指定する(オプション)
    • 設定ファイルの例(該当部分のみ抜粋)
    -plugindir /root/work/julius-4.1.2/plugin
    -input udpadin
    -udpport 12346
    
  • Julius の辞書
    • 認識した結果(単語)が、そのまま、Asterisk に通知される。
    • 例えば、数字(英数字)にすると、番号計画の中で利用しやすくなる。
  • 番号計画での利用方法
    • 認識させる
      • チャネル変数 JULIUS_PORT に julius 連携用の UDP ポートを指定する。(オプション)
      • アプリケーション BackgroundDetect に、プロンプトを指定して、実行する。
      プロンプトには、認識させたい時間分の無音部分を音声後に含ませる。
    • 認識結果を利用する
      • 単語を認識したときは、talk エクステンションに goto する。
      • 認識した単語は、チャネル変数 JULIUS_RECOG にセットされる。

制限

  • 音声認識は、同時に1チャネルのみ利用可能です。
複数チャネルで利用した場合は、正しい結果を得ることができません。
  • 登録されていない単語に対しても、常に登録した単語として認識してしまいます。
  • 騒がしい環境で利用すると、ノイズを音声とみなし、登録した単語として誤認識します。

その他

以下につきましては、iWeave 小西(直通電話番号 055-244-7663)までお問い合わせ下さい。

  • 電話用音響モデル
  • 複数チャネル同時認識対応
  • 複数文法対応
  • 環境ノイズ対応(環境ノイズを誤認識しないように)
  • システム構築、技術支援など

備考

  • 音声認識 Julius のページ
http://julius.sourceforge.jp/
  • 音声合成 galatea talk のページ
http://www.sp.nitech.ac.jp/~demo/gtalk/demo.php
http://sourceforge.jp/projects/galateatalk/
  • 形態素解析辞書 unidic のページ
http://www.tokuteicorpus.jp/dist/

補足ファイル

  • 山手線音声ファイル AqesTalk版
http://ftp.voip-info.jp/asterisk/sounds/misc/jr-aqt.zip
上記のデモ環境の音声ファイルと交換して使用できます。