# $Id: readme,v 1.1 2007-01-13 19:57:37+09 shige Exp $ □聴覚周波数検査デモスクリプト earch.csh 1. はじめに ----------- 先日、体調の影響か、右耳の聞こえ具合がやや悪くなりました。近くの 医者で診断してもらったのですが、特に問題はないとのことで大事はな いようなのですが、そこで受けた聴覚検査からふと思いついて、yomi http://takeno.iee.niit.ac.jp/~shige/unix/yomi/yomi.html のツールを使って簡単な周波数毎の聴覚テストを行ってみました。 これは、yomi のツールのデモにもなりますし、聴覚能力を自分で測って みたい、という人もいるかもしれませんから、公開することにします。 なお、ハードウェア (コンピュータ、音声ボード、ヘッドフォン等) の 性能により、特定の範囲の周波数の再生に問題があることもあります (特に最低音と最高音) し、作成者には医学的な知識もなければ、これで 調べられるものの妥当性もわかりませんので、あまりあてにはしないで ください。 又、付属の音声データには、20Hz から 20kHz、ボリュームレベル 0.7 のデジタル音が含まれていますが、それを聞くことによって生ずる障害 や損害には一切応じられませんので、あくまで自己責任でご利用くださ い。 2. 概要 ------- この配布物には、WAV 形式のデジタル音声データと、その実行スクリプ トが含まれています。それを kterm などのターミナル上で実行すると [01] [632.455Hz ~ 709.626Hz] [02] [709.626Hz ~ 796.214Hz] [03] [796.214Hz ~ 893.367Hz] ... のように表示しながら、その音声データを順に再生していきます。 各音声データには、表示される範囲の周波数を滑らかに変化する (いわ ゆるグリッサンド)、1 秒の音が、 1) 左右両方のチャンネル 2) 左チャンネルのみ 3) 右チャンネルのみ の順に入っています (正確に言えば、最後に同じ長さの無音も含まれて います)。つまり、ヘッドフォンをつけて実行すると、最初は 632.455Hz から 709.626Hz までのグリッサンド音が 1) 両耳から聞こえ、 2) 次は同じパターンが左耳のみから聞こえ、 3) 次は同じパターンが右耳のみから聞こえ、 4) 最後は無音 で、次の音に移る、というようになっています。丁度、視力検査で段々 見えにくい小さいものに移動していくようなイメージです。 最初に両耳から聞こえるものは、左右の耳のバランス (厳密にはそれと ヘッドフォンの左右のバランス) が正常であれば真ん中から聞こえるは ずですが、右耳の聞こえが悪いようであれば、それはやや左にずれて聞 こえますし、左右の聞こえ方の違いは、その後の左のみと右のみの音声 を聞き比べればよりはっきりすると思います。 検査は、人間の可聴範囲と言われる 20Hz ~ 20kHz の真ん中 (相乗平均 である 632.5Hz) から 20Hz まで下降するもの、又は真ん中から 20kHz まで上昇するもの、の 2 通りがあります。その範囲をそれぞれ 30 分割 してグリッサンドした音が用意されています。 なお、周波数表示は、等間隔に見えないかもしれませんが、音程は周波 数で言うと等比数列として並んでいますので、等比数列的に変化させて いて、一定音階ずつ下る、または上がるようにしています (よって、真 ん中も相加平均ではなくて相乗平均となります)。 3. インストール --------------- 3.1. 必要なもの --------------- 配布物 earch-XXXX.tar.gz には、以下のものが含まれています。 ・snd/*.wav: 音声データ (WAV 形式; 量子化ビット数 16, 2 チャンネ ル、サンプリング周波数 44100Hz) ・earch.csh: 音声再生 csh スクリプト (音声作成スクリプトにもなる) ・readme : このファイル 通常は、この音声データを利用すればいいでしょうが、音声データフォ ーマットを AIFF に変更したい、ボリュームを変更したい、という場合 は、sox などで自分で変換するか、あらためてこのスクリプトを利用し て音声データを作成する必要があります。分割数や周波数の範囲を変え たい場合などもこのスクリプトで音声データを作成し直してください。 音声データの再生 (および作成) には、まず以下のツールが必要です。 ・bc : 最近の Unix には、通常インストールされていますが、なけれ ば GNU bc をインストールしてください。 ・awk : GNU awk を仮定していますが、nawk などでも動くかもしれませ ん (未確認)。 また、音声データの再生には、 ・音声データを再生できるプログラム も必要です。これは、コマンドラインから WAV ファイルを指定してそれ を再生できるものがあればいいです。音声データを作り直して、AIFF に するなら AIFF 音の再生ツールが必要です。 さらに、音声データを作成し直す場合には、yomi に含まれる以下のツー ルも必要です。 ・sndglis : グリッサンド音作成ツール ・sndchmix : チャンネル音の取り出しツール ・wavconn : WAV 音声連結ツール (AIFF の場合は aiffconn; ただし、 いずれも auconn へのリンクになっているはず) なお、sndglis, sndchmix は、yomi のデフォルトのインストール (make install) ではインストールされず、make install-contrib とし ないとインストールされませんし、インストールされる場所も、wavconn がインストールされる場所とは違いますので、必要ならばパスを通すか それらのツールをフルパスで指定して実行する必要があります。詳しく は yomi の付属文書 readme-contrib を参照してください。 3.2. 展開 --------- 配布物を以下のように展開してください。 gunzip -c earch-XXXX.tar.gz | tar xvf - 3.3. 設定 --------- 再生にも、新たな音声データの作成にも、付属の csh スクリプト earch.csh を利用します。コメントとして説明も書かれていますが、以 下に設定が必要な変数について簡単に説明します。 設定が必要な部分は、この csh スクリプトの先頭部分の「作成/再生共 通の設定」、「再生用の設定」、「作成用の設定」の部分です。付属音 声をそのまま利用する場合は、最初の 2 つの部分だけ、音声データを作 成し直す場合は、最初のものと最後のものを設定する必要があります。 3.3.1. 作成/再生共通の設定 -------------------------- 共通の設定のうち、以下の変数は、付属音声をそのまま利用する場合は 変更は必要ありません (変更が必要なのは作成し直す場合だけ): minhz, maxhz: 最小/最大周波数 (デフォルトはそれぞれ 20, 20000) snddir : 音声、テンポラリファイルを作成するディレクトリ form : 音声フォーマット (wav, aiff のいずれか) div : 分割数 = 上昇、下降それぞれで作成される音声データの個数 以下の変数は、必要ならば、フルパスで指定してください: awk : (GNU) awk のコマンド名 bc : bc のコマンド名 以下は、0 か 1 を設定します: mydebug : 1 のときは、実際には音声の作成/再生はしない myverbose : 1 のときは、コマンドライン等を画面出力 普通は mydebug = 0, myverbose = 1 と設定して実行しますが、実行さ れるコマンドラインを見てみたい (実際の実行はしない) 場合は、 mydebug = 1, myverbose = 1 のようにしてみてください。 3.3.2. 再生用の設定 ------------------- 再生専用の設定は、音声再生コマンドの設定のみです。 sndplay : 再生コマンド名 オプションが必要な場合は、それも一緒に指定してください。実際には $sndplay [音声ファイル] のように実行されます。 3.3.3. 作成用の設定 ------------------- 作成用の設定は、作成ツールのコマンド等で、以下は必要ならフルパス で指定してください: sndglis : sndglis のコマンド名 sndchmix : sndchmix のコマンド名 sndconn : WAV を作成する場合は wavconn, AIFF を作成する場合は aiffconn ただし、wavconn と aiffconn は、実際にはいずれも auconn へのリン クになっているはずです。 以下の変数は、いずれも sndglis へのオプションです。sndglis へのオ プションの意味については、sndglis -h の出力か、または yomi の配布 物に含まれるドキュメント readme-contrib を参照してください: glisop : sndglis へのボリュームや周波数以外のオプション vlebel : 作成音声のボリュームレベル (0.0 ~ 1.0 の間) sndlen : 各音声部分の長さ (ミリ秒) splen : 最後につける無音部分の長さ (ミリ秒) なお、glisop の設定は、サンプリング周波数以外はデフォルトのまま (-$form -c2 -b16) が望ましいでしょう。vlevel もデフォルトの 0.7 位がいいと思います。splen は、コンピュータによっては音声の最後が 再生時に切れて再生される場合があるようですので、その場合は少し長 めに取ってみてください。デフォルトでは、sndlen = splen = 1000、す なわち 1 秒となっています。 4. 使用法 --------- 再生法は、kterm などのターミナル上から、 csh -f earch.csh up または、 csh -f earch.csh down とするだけです。前者は真ん中の音程から音程を上昇させていき、後者 は下降させていきます。 マシンやデバイス、ヘッドフォンなどの再生能力によって、うまく再生 されない範囲の音程があったり、特定の周波数の音のみが強めに再生さ れたりする可能性もありますので注意してください。 また、いきなりヘッドフォンで再生を試す前に、一度スピーカで再生し てボリュームを調整しておくことをお勧めします。 音声を作成する場合は、最後に makesound というオプションを追加して csh -f earch.csh up makesound または、 csh -f earch.csh down makesound と実行します。ただし、snddir を変更してない場合は、元々の音声デー タが上書きされてしまいますので注意してください。snddir を変更した 場合は、まずそのディレクトリを作成してから実行してください。 5. おわりに ----------- 実行するときは、実行させながら紙でメモを取って、 1 2 3 ... 18 19 20 21 22 23 24 25 26 27 28 29 30 左 ○ ○ ○ ... ○ ○ ○ ○ ○ ○ ○ △ × × × × × 右 ○ ○ ○ ... ○ △ △ △ △ × × × × × × × × のように、○は問題なし、△はやや聞きにくい、×は聞こえない、のよ うに書いていくといいでしょう。途中のある特定の周波数帯が聞こえに くい、という場合もあります。 ちなみに現在の私の場合、左耳 (問題ない方) は、マシンのハードウェ アの性能もあるのでしょうが、だいたい 45Hz ~ 11kHz は OK (○) で、 32Hz 以下、11.25kHz 以上は聞こえませんでした (×) が、右は、105Hz ~ 6kHz は OK, 90Hz 以下、8kHz 以上は聞こえませんでした。 これ位だと、少し左右に違和感がある位で日常生活には特に問題はない のですが、右のみ、左のみでイヤホンでラジオなどを聞くとだいぶ違っ て聞こえ、中音域であるはずの人の声なども、語によっては聞こえにく いものがあります (これはこれで私にとってはおもしろい発見ですが)。 少し定期的にモニタしてみて、もうちょっと悪くなったらまた医者に行 きたいと思います。 6. 目次 ------- 1. はじめに 2. 概要 3. インストール 3.1. 必要なもの 3.2. 展開 3.3. 設定 3.3.1. 作成/再生共通の設定 3.3.2. 再生用の設定 3.3.3. 作成用の設定 4. 使用法 5. おわりに 6. 目次 +=================================================+ 竹野茂治 〒945-1195 新潟工科大学 情報電子工学科 shige@iee.niit.ac.jp TEL(&FAX): 0257-22-8161 +=================================================+