音声ファイルを再生する

2015年10月29日 (木) 19:09時点におけるGima (トーク | 投稿記録)による版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

Asteriskで音声ファイルを作って、通話先に流す方法

目次

概要

電話着信した際に冒頭アナウンスを流すことがよくあります。
下記のようなメッセージを流すことがあります。

  • 「内線番号を入力してください」
  • 「電話をお繋ぎします。しばらくお待ち下さい」
  • 「電話をお呼びしましたが、膝に矢を受けてしまって出ることができません」

音声ファイルを用意する

まず、音声ファイルを作成しておきます。
音声合成ソフトで作成すると楽ですが、それぞれクセがあります。

  • AquesTalk
  • VoiceText (キャサリンやモヤモヤさまぁ~ず2で使われた音声合成ソフト)

サウンドフォーマット

システムによって扱えるサウンドフォーマットは異なりますが、
おおよそ下記のフォーマットに合わせると無難です

チャンネル数
モノラル1ch
周波数(サンプルレート)
8000Hz
フォーマット
GSMかulaw

spwaveで音声ファイルのフォーマットを変更する

音声合成ソフトで作成した音声ファイルは、Asteriskではそのまま使うことができないので
ファイルフォーマットを変換する必要があります。

Windowsでファイルを編集する場合は、spwaveでフォーマットを変更することが出来ます。

チャンネル数のモノラル化
編集→ビット/モノラル化
ビットの変更
編集→ビット/サンプル変換
周波数の変更
変更→サンプリング周波数の変換

spwaveメイン画面

保存する時に、ファイルの種類をU-lawに指定して保存します。
ファイルをAsteriskの動いているサーバーに移しておきます。
SPwaveでファイルを保存する時のダイアログ画面

extensions.confの設定

内線代表(100番)に着信したら、簡単なアナウンスを流して、電話機に繋ぐ例

[globals]
Daihyo=100

[default]
exten => ${Daihyo},1,        NoOp(Incoming NTT(03-XXXX-XXXX))
exten => ${Daihyo},n,        Answer
exten => ${Daihyo},n,        Wait(1)
exten => ${Daihyo},n,        Ringing(1)
exten => ${Daihyo},n,        Playback(/mnt/moh/1-odenwa-arigatou)
exten => ${Daihyo},n,        Playback(/mnt/moh/2-Yobidashi)
exten => ${Daihyo},n,        Dial(SIP/201&SIP/202,60,m)
exten => ${Daihyo},n,        Hangup

コツ

  • "Playback"で流す音声ファイルは拡張子抜き
  • "Wait"は一秒刻みで、アナウンスの"間"をつくる用途としては間延びするため不向き。
    音声ファイルの中で間を空ける(無音の時間を作る)ほうが効果的