Tips

Macのスピーチ機能を使う

日付2013/06/04
ID13-004
バージョン13
プラットフォームWindows, Mac

Macのスピーチを利用するとき、4Dで表示されているテキストを上手くハンドルできないことがあります。そうした問題に直面したなら、4D側でMacのスピーチをコントロールすることをお勧めします。

例えば、次のサンプルコードは、スピーチを使ってローカル変数$textの内容をしゃべらせます。

  //スピーチにしゃべらせるテキスト
C_TEXT($text)
$text:="AppleScript をターミナルからコマンドラインで呼び出す方法はこれを参考にしてください。"

  //AppleScript化
C_BLOB($script_x)
CONVERT FROM TEXT("say \""+$text+"\"";"UTF-8";$script_x)

  //ドキュメントにする
C_TEXT($script_path_4d;$script_path_unix)
$script_path_4d:=String(Milliseconds)+".txt"
$script_path_unix:=Get 4D folder(Database Folder Unix Syntax)+$script_path_4d  //OSで扱うためのファイルパスを生成
$script_path_4d:=Get 4D folder(Database Folder)+$script_path_4d  //4Dで扱うためのファイルパスを生成
BLOB TO DOCUMENT($script_path_4d;$script_x)

  //Script実行
LAUNCH EXTERNAL PROCESS("osascript "+$script_path_unix)

  //ファイル削除
DELETE DOCUMENT($script_path_4d)

この例では、一時的にファイルを作成していますが、これはosascriptコマンドに直接引数として渡せる文字列の長さに制限があるため、それを避ける目的でファイルを使っています。