━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ TownsFOS対応ユーティリティ 16進数ボイスダンプコマンド ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ プログラム名:HVDUMP.BAS, HVFC.BAS, HVREC.BAS, HVSUB.BAS, HVTEST.BAS 対応機種 :FM TOWNS(TownsOS/F-BASIC386) 作者 :たろぴょん ●口上 ◎h!FM '89年12月号に掲載された,F-BASIC386上でチェックサムの値を 16進数で読み上げるプログラムです。当CDにも収録されているTownsF OS対応ですが、F−BASIC386さえあれば、TownsFOS上でな くとも動作します。  今回は、作者のたろぴょん氏およびOh!FM編集部のご好意により収録し ました。 ●概要  このプログラムは本誌 '89年7月号に掲載されたTownsFOS対応の 「16進数ボイスダンプコマンド」です。  早い話TOWNSのPCM録音再生機能を使い,16進数をしゃべらせてしま おうというプログラムです。TOWNSの機能をもってすれば非常に他愛のな いプログラムですが,それなりに実用性もあると思います。  プログラムは以下の5本のファイルで構成されています。 HVREC.BAS 音声データ録音用 HVSUB.BAS 音声出力用サブルーチン HVTEST.BAS 音声出力テストプログラム HVDUMP.BAS ボイスダンプコマンド HVFC.BAS TWFC改造用マージファイル  なお,このソフトはTownsFOS対応ですが,単体でも動作しますので, TownsFOSをお持ちでない方でも使用できます(その場合リスト5は打 ち込まなくてもOK)。 ●注意  TownsFOS上から使うにはコマンドディレクトリにプログラムをセー ブしておく必要があります。このあたりは本誌 '89年7月号p.25からのTow nsFOSの説明を見てください。 ●各プログラムの説明 ・HVREC.BAS  音声データを作成するプログラムです。ほかのプログラムを利用するために も必ず必要となります(これがないと音声データが作れないわけですから)。  TownsFOS上からHVRECとタイプするか,F-BASIC386上か らRUNして起動させてください。  起動するとメニューが表示されます。コマンドは1〜5の数値で指定します。 音声データを作る場合,まずは1の「録音」を選択してください。0〜Fの16 文字が表示されていると思います。この16進数に当たる文字を録音するわけで すが,録音された文字については文字の下にアスタリスク(*)が表示されま す。この表示はほかのところでも出てきますが,同じ意味です。  録音には「すべての文字を録音する」モードと,すでに録音してあるデータ を変更するための「指定の文字のみ録音する」モードがあります。最初は何も 録音されていないので,「すべての文字を録音する」を選択してください。あ とは1文字ずつ順番に録音していくだけです。スペースキーを押すとすぐに録 音が開始されます。録音が開始されるタイミングに合わせてしゃべるのはけっ こう難しいので,何度かトライしないとなかなかタイミングがつかめないと思 います(画面にアスタリスク(*)が表示された時点から録音が開始されてい ます)ので,何度かやってみてください。ちなみに録音時間は1文字 0.4秒で す。指定の文字のみ録音する場合も要領は同じです。  録音が終わったらメニューに戻って,今度は2の「再生」を選択してくださ い。先ほど録音された音声をすべて再生します。もし,録音に失敗した文字 (聞きとりにくいなど)があれば1の「録音」で,録音し直してください。  すべての文字(0〜F)について録音し終わったら,音声データをセーブし ます。メニューから4の「セーブ」を選択してファイル名を入力してください。 このときファイル名を入力せずにリターンだけを押すとセーブされずにメニュー に戻ります。なお,ファイル名には.HRCという拡張子が自動的に付きます ので.HRCまで入力する必要はありません。  メニューの3,「ロード」は音声データをロードするものです。セーブと同 じようにファイル名には.HRCという拡張子が自動的に付きます。 ・HVSUB.BAS  このプログラムはほかのプログラム中からHVRECで作った音声データを 使用するためのサブルーチン群で,HVTEST.BAS,HVDUMP.BA S,HVFC.BASを使うときにも必要です(マージして使用します)。  各サブルーチンの先頭ラベルと簡単な説明をしておきましょう。  ラベル *HV_INIT:音声出力に必要な変数,配列を初期化します。 ほかのサブルーチンを使用する前に必ず実行します。プログラムの先頭で一度 実行すれば,あとは実行の必要はありません。  ラベル *HV_LOAD:音声データをロードします。文字列変数FL$ にファイル名を入力して呼び出します。エラー処理(「指定のファイルが見つ からない」等)は何も行っていないのでユーザプログラムのほうで処理してく ださい。ファイル名には拡張子.HRCは自動的に付加されますので.HRCま で指定する必要はありません。  ラベル *HV_PLAY:音声データを再生します。変数RNO%に0〜 15(&H0〜&HF)の数値を代入して呼び出します。  各サブルーチンの具体的な使用例は次のプログラムを参考にしてください。 ・HVTEST.BAS  HVSUB.BASの動作確認と具体的な使用例を示すプログラムです。H VSUB.BASのサブルーチンの使い方はこれを見れば簡単に理解できると 思います。  実際に使用するにはHVSUB.BASをマージしてください。  RUNしてから,まず音声データのファイル名を入力します。ロードにはし ばらく時間がかかります。あとは0〜Fの文字を入力するとその文字をしゃべ るはずです。  16進文字以外の文字を入力すると終了します。 ・HVDUMP.BAS  音声出力によるファイルダンプコマンドです。HVSUB.BASをマージ して使用してください。  TownsFOS上から使用する場合,環境変数HVFILEに音声データ のファイル名を指定しておくことにより,音声データファイル名の入力を省略 できます。たとえばTownsFOS上から次のように環境変数HVFILE を指定します。   set HVFILE A:¥HVDATA  TownsFOS上から使用する場合にはダンプ出力するファイルのファイ ル名はコマンドラインに指定できます。  F-BASIC386上でRUNした場合には音声データ,ダンプファイルのファ イル名を入力しなければなりません。また中断したい場合はスペースキーを押 してください。 〔TownsFOS上からの使用例〕   hvdump test.exe ・HVFC.BAS  本誌 '89年7月号に発表したダンプリスト入力ツールTWFC.BASを音 声出力対応にするためのマージファイルです。  まずTWFC.BASをロードし,次にHVSUB.BAS,HVFC.BAS をマージしてください。そうしてTWFC.BASをセーブし直せばできあがり です。  HVDUMP.BASと同様に,TownsFOS上で使用する場合には環境 変数HVFILEに音声データのファイル名を指定可能です。  コマンドモード時にVを指定するとチェックサムをしゃべってくれますが, しゃべるのは横サムのみです。 ●プログラムについて  とくに解説するようなプログラムではありませんが,メモリの使用量を減ら すためサンプリング周波数は8KHzで使用しています。録音時間は前にも述 べたように1文字 0.4秒です。短いようですが,現実的にはこれだけあれば充 分です。  プログラムの先頭のほうで定義してあるHV-SR%(HVREC.BASで はSR)を変更することによりサンプリング周波数は変更可能です。  HV-VM%(HVREC.BASではVM)は音量です。これも必要によっ て変更してみてください(1〜127)。  音声データのロード/セーブにはF-BASIC386の隠しコマンドであるP EEK,POKE,VARPTRを使用しています。 ●最後に  音声データのロードが少々遅いのがガンですが,ちょっとしたことには使え るユーティリティではないかと思います。  とくにチェックサムをしゃべってくれるというのは,ダンプリストの打ち込 みにはけっこう役に立ってくれます。1文字打ち込むたびにしゃべるのもよい かと思いましたが,実際にやってみるとうざったいので今回はチェックサムの みとしました。私自身,昔(FM−8の時代だよ)チェックサムをしゃべって くれるプログラムを使っていた経験がありますが,打ち込みにはチェックサム だけで充分です(それにしゃべるスピードが追いつかないし)。  それとなるべく音声データは自分以外の声で録音しましょう(できれば女B さんにお願いしたいところですね)。自分の声を聞くというのはあまり気持ち のいいものではないですからね。 ● 著作権・再配布について このプログラムの著作権は作者が保持しておりますが,著作権法の定める 「個人的な利用」の範囲であれば自由に利用してくださってけっこうです。ま た,転載・配布についても事前の許諾なしに自由に行ってくださってかまいま せん。ただし配布時に, 1.「たろぴょん」がプログラミングしたものであること 2.◎h!FM '89年12月号に掲載されたものであること 3.作者の自由転載許可に基づいて転載・配布したものであること を,説明用のテキストに明記してください。