2

MacOSX Mountain Lion の新しいディクテーション機能がとても気に入っています。私は 2 つの言語で使用しています。英語(私たち)とフランス語。

言語を切り替える必要があるたびに、システム設定、ディクテーションとスピーチに移動して、言語を選択する必要があります。

Applescript を使用して自動的にそれを行いたいのですが、残念ながら、それは非常に新しいため、ディクテーション モジュールの適切な文字列を取得できません。

簡単な例 (これはほんの始まりです):

tell application "System Preferences"
   activate
   set the current pane to pane id "com.apple.preference.xxxxxx"
end tell

xxxx については、"Dictation&Speech" というワイルドな推測を試みましたが、うまくいきませんでした。

「ディクテーションとスピーチ」の正確な文字列を取得する方法についてのアイデアはありますか?

少し早いですがお礼を、

フランソワ

4

5 に答える 5

3

設定を保存するプロパティ リストを編集して、DictationIM プロセスを再度開くことができます。

#!/bin/bash

k="com.apple.speech.recognition.AppleSpeechRecognition.prefs DictationIMLocaleIdentifier"
if [[ "$(defaults read $k)" == en-US ]]; then
  defaults write $k fr-FR
  defaults write com.apple.assistant "Session Language" fr-FR
else
  defaults write $k en-US 
  defaults write com.apple.assistant "Session Language" en-US
fi
killall -HUP DictationIM

または、UI スクリプトを使用します。

delay 0.3 -- time to release modifier keys if the script is run with a shortcut
tell application "System Preferences"
    reveal anchor "Dictation" of pane "com.apple.preference.speech"
end tell
tell application "System Events" to tell process "System Preferences"
    tell pop up button 1 of tab group 1 of window 1
        click
        if value is "English (United States)" then
            click menu item "French" of menu 1
        else
            click menu item "English (United States)" of menu 1
        end if
    end tell
end tell
quit application "System Preferences"
于 2012-07-30T11:01:29.007 に答える
3

ペインの ID を取得するには: システム設定に移動し、ペインを選択して、エディタでこのスクリプトを実行します。

tell application "System Preferences" to get id of current pane

結果は正確な文字列です。

于 2012-07-27T04:09:51.553 に答える
0

クール!

「Notifications Scripting」がインストールされている場合 ( http://www.cooperative-fruitiere.com/notifications/index_en.html )、言語に関する通知を受け取ることもできます。また、FastScripts の助けを借りて、このスクリプトにキーボード ショートカットを割り当てることができます。

-- Switch the language of Mountain Lion's dictation
-- Here, we just toggle between English and German
-- Needs 'Notifications Scripting' ( http://www.cooperative-fruitiere.com/notifications/index_en.html )

delay 0.3 -- time to release modifier keys if the script is run with a shortcut
tell application "System Preferences"
    reveal anchor "Dictation" of pane "com.apple.preference.speech"
end tell

tell application "System Events" to tell process "System Preferences"
    tell pop up button 1 of tab group 1 of window 1
        click
        if value is "English (United States)" then
            set language to "German (Germany)"

        else
            set language to "English (United States)"
        end if
        click menu item language of menu 1
    end tell
end tell

quit application "System Preferences"

tell application "Notifications Scripting"
    set event handlers script path to (path to me)
    -- The user info parameter is a record. The supported data types are text, integer, real, boolean, date, alias, file and POSIX file.
    set dict to {theName:"Notifications Scripting", theVersion:"1.0", theScript:event handlers script path}
    display notification "Dictation Language" subtitle "Switched to:" message language
end tell

using terms from application "Notifications Scripting"
    -- This handler is called when a notification was delivered.
    on notification delivered title aTitle subtitle aSubTitle message aMessage actual delivery date aDeliveryDate user info aDict
    end notification delivered
end using terms from
于 2013-01-06T13:56:20.937 に答える
0

delayコマンドを入力しない限り、提供されたスクリプトは機能しません。application processまた、単に ではなく、 である必要がありますprocess。どこで変更を加えるかを説明する代わりに、実際のコードを掲載します。[これは macOS Catalina でテストされていることに注意してください。Apple が将来のバージョンでシステム環境設定 GUI を変更した場合、このコードは機能しない可能性があります。]

tell application "System Preferences"
    reveal anchor "Dictation" of pane "com.apple.preference.speech"
end tell
delay 1
tell application "System Events" to tell application process "System Preferences"
    tell pop up button 1 of tab group 1 of window 1
        click
        if value is "English (United States)" then
            click menu item "Hungarian (Hungary)" of menu 1
        else
            click menu item "English (United States)" of menu 1
        end if

    end tell
end tell
quit application "System Preferences"
于 2020-02-14T06:12:36.090 に答える