3 votes

Comment activer "Annoncer l'heure" de manière programmatique ?

Le volet "Date et heure" des préférences système comporte une option "Annoncer l'heure". J'aimerais pouvoir activer cette option de préférence en invoquant un script de shell. Est-ce possible ?

(Ce n'est pas grave si cela implique d'invoquer un script distinct écrit en Applescript).

1voto

Gareth Simpson Points 5905

Cette préférence semble être stockée dans com.apple.speech.synthesis.general.prefs

Essayez ça :

defaults write ~/Library/Preferences/com.apple.speech.synthesis.general.prefs TimeAnnouncementPrefs -dict TimeAnnouncementsEnabled -bool YES

ou 0 à la fin pour le désactiver. Voir man defaults pour plus d'informations.

Edit : Une autre chose que le shell script devrait faire : si vous n'avez pas activé cette préférence ou un autre comportement de synthèse vocale depuis le démarrage, vous devrez également lancer le démon Speech Synthesis Server :

open /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesisServer.app

Dans le cas contraire, l'option apparaîtra comme cochée dans les Préférences Système, mais rien ne la lira réellement lorsqu'il s'agira de dire l'heure.

0voto

Lorin Hochstein Points 2034

Résumé

Il y a deux étapes :

  1. Modifiez la valeur de configuration pour "Annoncer l'heure".
  2. Démarrer/arrêter le serveur de synthèse vocale

Les instructions ci-dessous sont pour MacOS Big Sur.

Valeur de configuration

Sur MacOS Big Sur, les valeurs de configuration pour "Annoncer l'heure" se trouvent dans le fichier ~/Library/Preferences/com.apple.speech.synthesis.general.prefs.plist fichier.

Vous pouvez voir l'état actuel du fichier en utilisant la fonction defaults commandement :

$ defaults read ~/Library/Preferences/com.apple.speech.synthesis.general.prefs
{
    TimeAnnouncementPrefs =     {
        TimeAnnouncementsEnabled = 0;
        TimeAnnouncementsIntervalIdentifier = EveryQuarterHourInterval;
    };
}

Le site TimeAnnouncementPrefs.timeAnnouncementsEnabled est un booléen que vous pouvez définir pour activer ou désactiver les annonces. Vous devez également faire tourner le démon Speech Synthesis Server, comme le note @mckeed.

Pour l'activer :

defaults write ~/Library/Preferences/com.apple.speech.synthesis.general.prefs \
 TimeAnnouncementPrefs -dict-add TimeAnnouncementsEnabled -bool YES 

open /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesisServer.app

Pour le désactiver :

defaults write ~/Library/Preferences/com.apple.speech.synthesis.general.prefs \
 TimeAnnouncementPrefs -dict-add TimeAnnouncementsEnabled -bool NO

Notez que vous devez utiliser -dict-add et non dict sinon le TimeAnnouncementsIntervalIdentifier le terrain va se faire démolir.

Serveur de synthèse vocale

Le nom de service du serveur de synthèse vocale est com.apple.speech.synthesisserver

Le spécificateur dans launchctl est :

gui/$UID/com.apple.speech.synthesisserver

$UID est votre identifiant (par exemple, 501 ). Le site UID devrait déjà être définie pour vous par votre shell.

Démarrer le serveur de synthèse vocale

launchctl kickstart gui/$UID/com.apple.speech.synthesisserver

Arrêtez le serveur de synthèse vocale

launchctl kill SIGTERM gui/$UID/com.apple.speech.synthesisserver

(Pour une raison quelconque, je dois exécuter cette commande deux fois pour arrêter le processus, je ne sais pas pourquoi).

Vérifier l'état du serveur de synthèse vocale

launchctl print gui/$UID/com.apple.speech.synthesisserver

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X