{{category HSP}} !!! HSPの基礎6:音声の録音と外部ファイルからのデータ取り込み {{outline}} ---- ! ![](po.png) !! 1)音声の録音 ! 絵を見て、答えを録音する * スクリプト: postoffice-sound-answer-time-reconding2.hsp * 画像ファイル: po.png(先週と同じもの) * 音声ファイル: po.mp3(先週と同じもの) ! 結果は以下のファイルに保存される * 録音データ(sample.wav) * 録音にかかった時間(time.txt) ! 録音に必要な命令(マイク必要) * 準備 {{pre mci "open new alias sam type waveaudio" ; waveでsamという「デバイス」に録音 mci "set sam channels 2" ; チャンネル数2(ステレオ) mci "set sam samplespersec 44100"; サンプリング周波数 mci "set sam bitspersample 16" ; サンプルビット数 }} * 操作 {{pre mci "record sam" ; 録音の開始 mci "stop sam" ; 録音停止 mci "save sam \"sample.wav\"" ; 音声ファイル保存 mci "close sam" ; 録音終了(デバイスを閉じる) }} !! 2)外部ファイルからのデータの取り込み *flashCard01c.hsp ! テキストファイルから単語を読み込む * テキストファイルは words.txt というファイル名 * 一行一単語ずつ {{pre puzzle idle simple waggle twinkle challenging }} * 同じフォルダーに入れておく。 {{pre notesel notename; 事前に読み込みバッファ(メモリーパッド)の設定 noteload "words.txt" ; テキストファイルの読み込み }} * 「メモリーパッド」とは、行単位でテキストデータを扱う「特別な」変数(noteなんとかという命令群) * notemax に読み込んだ行数が自動的に入る。 {{pre noteget 変数, 番号 }} * メモリーパッドの何番の行を読み込むか指定 * 読み込んだ内容を変数に入れる * 「第5文型」: 変数に番号(の内容)をgetする !! 3)外部ファイルからのデータの取り込み(二次元配列) ! 二つの対応する項目(英語,日本語)をテキストデータ(CSVファイル)にしておく。 * スクリプト: flashCard02b.hsp * データファイル: text.csv {{pre analysis,分析 response,反応 occur,発生する }} ! データファイル: text.csv * エクセルで作って、CSVファイルで保存 ,英語,日本語 ,concept,概念 ,method,方法 ,analysis,分析 !! 読み込んで二次元配列に入れていく ! wordlist(フィールド番号, レコード番号) (レコード番号とフィールド番号の順番に注意) ,フィールド番号,レコード番号 ,0,0,1,0 ,0,1,1,1 ,0,2,1,2 !! 外部ファイルからのデータ取り込み {{pre notesel text ; 事前に読み込みバッファ設定 noteload "text.csv" ; CSVファイルの読み込み gyosuu = notemax ; notemaxは、「メモリーパッド」内の行数。 }} * csvファイルで読み込む点に注意 !! 二次元配列の定義 sdim wordlist, 2, notemax * sdim で「文字列型配列」を使うことを定義 * wordlist という名前(変数名)にする * 2 つの「フィールド」を使うことを指定 * notemax の数だけの「レコード」数(行数)(具体的に数を書いてもよい) !! データを読み込んで、「カンマ」を区切りとして、二次元配列に入れていく split をHSPキーワード検索して説明を読む {{pre repeat gyosuu ; 行数(語数)分だけ繰り返す。 noteget item, cnt; noteget で行単位で読みだす。 ; cntで読み込みインデックス番号を指定 split item, ",", wordlist(0,cnt), wordlist(1,cnt) ; item をカンマで切って、二次元配列に代入 item = "" await 1 loop }} !! 4)音声ファイルを順に鳴らす * スクリプト: flashCard03.hsp * データファイル: text.csv * 音声ファイル: 番号.mp3 * 音声テストスクリプトから解説 !! 5)音声ファイルを聞いてタイプする  ! ★このスクリプトにはバグがあります。直してみましょう。 * スクリプト: flashCard04d.hsp * データファイル: text.csv * 音声ファイル: 番号.mp3 * 音声テストスクリプトから解説