DICTATEディクテイト関数

マイクから音声を拾得し、認識した文字列を返します。RECOSTATE関数の第2引数以降で単語登録をしている場合、その単語のみの拾得となり単語登録していない音声は拾得されません。

構文
  1. String = DICTATE( 拾得待ちフラグ )
引数
拾得待ちフラグ (Boolean = True)省略可
TRUE
入力があるまで待つ(デフォルト)
FALSE
待たず直近の入力を返す
戻り値
拾得音声文字

使い方

UWSC
RECOSTATE(TRUE, "単語1", "単語2")
UWSC
RECOSTATE(TRUE, "単語1", "単語2", array1, array2)
UWSC
RECOSTATE(TRUE, "単語1", array1, array2, "単語2")

以下はRECOSTATE関数で単語登録を行っているので、DICTATE関数では"おはよう"、"こんにちは"、"こんばんは"、"終了"の音声以外は拾得されません。

UWSC
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関数で単語登録を行わなかった場合すべての音声に認識する代わりに精度は悪くなります。

UWSC
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を指定して拾得できるまで待機する例。

UWSC
REPEAT
	SLEEP(0.001)
	DIM str = DICTATE(FALSE)
UNTIL str <> ""

「cmd.txt」にあるテキストを1行毎に取得し単語として登録。

UWSC
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)

プログラム実行例

音声認識でアプリを操作

UWSC
使用関数
解説

この記事は役に立ちましたか?

はい
いいえ
ご協力ありがとうございます。

関連記事

RECOSTATE関数 (スクリプト関数)
音声認識を開始・終了します。