運転中に歌の練習をしよう!

はじめに


私はアカペラを趣味でやっているのですが、
仕事をしていると時間がないのでなかなか練習できません。
通勤に車を使っているで車の中で歌ってたのだけど、
なかなか、思うように練習できません。
録音して聞いてみるとよいって話を聞いたので、
録音をノートPCでやろうとしたのですが、運転中に
マウスクリックをするのは、なかなか危険です。
そこで、カーナビよろしく、音声入力で操作できるといいのになぁ。
っと思いました。
持っているものとフリーソフトだけで環境が作れたので、
ここで紹介させてもらいます。


用意するもの


1.ノートパソコン(今回はThink Pad A30です)
2.ヘッドセット(ヘッドフォンにマイクがついているもの)
3.Windows(今回は2000です。)
4.STSREC(フリーの録音ソフト)
5.SCMPX(フリーのwav→mp3変換ソフト)
6.UWSC(フリーのWindows自動化ソフト)
7.マイクロソフトSpeechSDK5.1
8.マイクロソフトSpeechSDKランゲージパック


設定方法


1.まずはノートパソコンを起動します。
2.ヘッドセットをつなぎ、装着します。
3.インターネットから各ソフトをダウンロードします。
STSREC
http://www.vector.co.jp/soft/winnt/art/se204594.html
SCMPX
http://www.din.or.jp/~ch3/scmpx.html
UWSC
http://www.vector.co.jp/soft/win95/util/se115105.html
マイクロソフトSpeechSDK5.1
マイクロソフトSpeechSDKランゲージパック
http://www.microsoft.com/speech/download/sdk51/
簡読★Text(日本語を話させる)
http://www.softfarm.net/ather/txt2speech.html

4.各種設定を行います。
4.1.STSRECの設定
1)STSREC.exeを起動
2)設定ボタンを押す
3)保存→ファイル完成後コマンド実行に
C:\Documents and Settings\Administrator\デスクトップ\coe\stsrec\ch.bat
と入れます。
後は、録音してみてうまくいくことを確認してください。

4.2.SCMPXの設定
特にないと思います。忘れました。orz

4.3.SpeechSDK5.1の設定
音声認識させて、パソコンを操作するために無料で利用できる
音声認識ソフトをインストールします。
基本的に順番に入れていけばインストールできるはずです。

4.4.簡読★Textのインストール
UWSCのマクロ(プログラム)で、テキストを読ませることができますが、
日本語を話させることができません。
そこで、話すためのソフトを入れます。
SpeechSDK5.1では現在日本語を話させることができません。
バージョンが4だと日本語を話させることが出来るので入れます。

4.5.UWSCのプログラム

以下のプログラムで、音声認識して録音や再生、などが出来ます。

dim cmd[100] = "停止", "録音", "再生", "確認", "削除";len = 5
for i=0 to GETDIR("C:\Documents and Settings\Administrator\デスクトップ\coe\mp3","*.mp3")-1
 cmd[len+i] = COPY(GETDIR_FILES[i],0,LENGTH(GETDIR_FILES[i])-4);print cmd[len+i]
next
RECOSTATE(True, cmd, "おわり", "はい", "いいえ") // 開始、単語登録
file = "空も飛べるはず"
While True
 ss = DICTATE(True);print ss    // 取得
 for i=len to 100
  ifb (ss = cmd[i]) then
   file = ss;話す(file)
  endif
 next
 select ss
 case "再生"
  print file;exec("c:\winbin\y901\y901 <#DBL>C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\デスクトップ\COE\mp3\" + file + ".mp3<#DBL>")
 case "確認"
  ifb FOPEN("C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\デスクトップ\COE\stsrec\out.txt", F_EXISTS) then
   fid = FOPEN("C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\デスクトップ\COE\stsrec\out.txt", F_READ)//ファイルオープン
   f = FGET(fid, 1);FCLOSE(fid);print f
   exec("c:\winbin\y901\y901 <#DBL>C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\デスクトップ\COE\stsrec\" + f + "<#DBL>")
  endif
 case "削除"
  ifb FOPEN("C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\デスクトップ\COE\stsrec\out.txt", F_EXISTS) then
   fid = FOPEN("C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\デスクトップ\COE\stsrec\out.txt", F_READ)//ファイルオープン
   f = FGET(fid, 1);FCLOSE(fid);print f // PUT
   ifb 確認(f + "を消しますか?") then
    doscmd("del <#DBL>C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\デスクトップ\COE\stsrec\" + f + "<#DBL>")
    doscmd("del <#DBL>C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\デスクトップ\COE\stsrec\out.txt<#DBL>")
   endif
  endif
 case "録音"
  RECOSTATE(False)
  exec("<#DBL>C:\DOCUMENTS AND SETTINGS\ADMINISTRATOR\デスクトップ\COE\stsrec\stsrec<#DBL>")
  ACW(GETID("STSREC","#32770"),356,262,312,243,0);BTN(LEFT,CLICK,406,348,220)
  SENDSTR(GETID("STSREC","#32770"),file,0,TRUE)
  ACW(GETID("STSREC","#32770"),356,262,312,243,0)
  BTN(LEFT,CLICK,429,482,0) // 録音
  停止待ち()
  BTN(LEFT,CLICK,585,482,0) // 停止
  CtrlWin(GETID("STSREC","#32770"), CLOSE);
  RECOSTATE(True, cmd, "きりかえ", "おわり", "はい", "いいえ") // 開始、単語登録
 case "停止"
  y901 = GETID("Y901_DIRECT","TForm1");CtrlWin(y901, CLOSE)
 case "おわり"
  SPEAK("ByeBye"); break  // 音声合成
 selend
Wend

RECOSTATE(False)
Procedure 停止待ち() // Var宣言を付けると引数を変更可能にする(参照引数)
 GETKEYSTATE(VK_LBUTTON)
 While True
  sleep(0.2);if GETKEYSTATE(VK_LBUTTON) then break
 Wend
 While True
  sleep(0.2);if (!GETKEYSTATE(VK_LBUTTON)) then break
 Wend
Fend
Function 確認(str) // Var宣言を付けると引数を変更可能にする(参照引数)
 話す(str);ss = DICTATE(True);print ss;select ss
 case "はい"
  話す("削除しました");Result = true;exit
 case "いいえ"
  Result = false;話す("キャンセルしました");exit
 selend
 話す("キャンセルしました")
Fend
Procedure 話す(file)
 fid = FOPEN("speak.txt", F_WRITE);FPUT(fid, file);FCLOSE(fid)
 exec("Txt2Speech.exe <#DBL>C:\Documents and Settings\Administrator\デスクトップ\coe\uwsc\speak.txt<#DBL>")
Fend

他に、ノートパソコンの使っていない機能つきのキーにソフトの起動ボタンをつけたり、perlでwavをmp3に変換するようにSCMPXを呼んだりいろいろやってるのですが、文章能力なくて書ききれないので、適当になりましたが紹介を終わります。


あとがき


この原稿を書いた後に車の中でFM飛ばして音楽を聞きたいなと思って電気屋さん行ったら、
MP3プレーヤーで、FM飛ばせて録音できるっていう機種が売ってました。12000円くらい。
音声認識は結構車のノイズが多いと辛いので、こっちのほうがずっと手軽だよなぁとか思いました。
音声認識のソフトウェアだとドラゴンスピーチというものがかなりの認識率を誇っているそうなので、
機会があったらそちらのほうも使ってみようと思います。