本ページには広告が含まれています。
マイクから音声を拾得し、認識した文字列を返します。RECOSTATE関数の第2引数以降で単語登録をしている場合、その単語のみの拾得となり単語登録していない音声は拾得されません。
- 構文
- String = DICTATE( 拾得待ちフラグ )
- 引数
- 拾得待ちフラグ (Boolean = True)省略可
- TRUE
- 入力があるまで待つ(デフォルト)
- FALSE
- 待たず直近の入力を返す
- 戻り値
- 拾得音声文字
使い方
RECOSTATE(TRUE, "単語1", "単語2")
RECOSTATE(TRUE, "単語1", "単語2", array1, array2)
RECOSTATE(TRUE, "単語1", array1, array2, "単語2")
以下はRECOSTATE関数で単語登録を行っているので、DICTATE関数では"おはよう"、"こんにちは"、"こんばんは"、"終了"の音声以外は拾得されません。
DIM cmd[] = "おはよう", "こんにちは", "こんばんは", "終了"
RECOSTATE(TRUE, cmd)
FUKIDASI("音声を取得します")
WHILE TRUE
DIM str = DICTATE(TRUE)
PRINT str
IF str = "終了" THEN BREAK
SLEEP(0.001)
WEND
RECOSTATE(FALSE)
- 結果
- おはよう>おはよう
こんにちは>こんにちは
こんばんは>こんばんは
おやすみ>
すみません>
RECOSTATE関数で単語登録を行わなかった場合すべての音声に認識する代わりに精度は悪くなります。
SETHOTKEY(VK_ESC, EMPTYPARAM, "forceQuit")
RECOSTATE(TRUE)
FUKIDASI("音声を取得します ESCで終了")
WHILE TRUE
PRINT DICTATE(TRUE)
SLEEP(0.001)
WEND
RECOSTATE(FALSE)
PROCEDURE forceQuit()
EXITEXIT
FEND
- 結果
- おはよう>日本
こんにちは>こんにちは
こんばんは>今晩は
おやすみ>上杉
すみません>すみません
拾得待ちフラグにFALSEを指定して拾得できるまで待機する例。
REPEAT
SLEEP(0.001)
DIM str = DICTATE(FALSE)
UNTIL str <> ""
「cmd.txt」にあるテキストを1行毎に取得し単語として登録。
DIM array[-1]
DIM FID = FOPEN("D:\Desktop\cmd.txt", F_READ)
FOR row = 1 TO FGET(FID, F_LINECOUNT)
arrayPush(array, FGET(FID, row))
NEXT
FCLOSE(FID)
RECOSTATE(TRUE, array)
プログラム実行例
音声認識でアプリを操作
DIM cmd[] = "電卓", "メモ帳", "ペイント", "最大化", "最小化", "終了"
RECOSTATE(TRUE, cmd)
WHILE TRUE
FUKIDASI("音声を取得します")
SELECT DICTATE(TRUE)
CASE "電卓"
FUKIDASI("電卓を起動します")
EXEC("calc.exe")
CASE "メモ帳"
FUKIDASI("メモ帳を起動します")
EXEC("notepad.exe")
CASE "ペイント"
FUKIDASI("ペイントを起動します")
EXEC("mspaint.exe")
CASE "最大化"
FUKIDASI("アクティブウィンドウを最大化します")
CTRLWIN(GETID(GET_ACTIVE_WIN), MAX)
CASE "最小化"
FUKIDASI("アクティブウィンドウを最小化します")
CTRLWIN(GETID(GET_ACTIVE_WIN), MIN)
CASE "終了"
BREAK
SELEND
SLEEP(0.500)
FUKIDASI()
WEND
RECOSTATE(FALSE)
使用関数
解説