I've got my Mac speaking me the time every hour, but I'm currently trying to learn French so I thought it would be a good idea to make it speak the time in French.

However, rather than saying "Il est 11 heures." she says "It's 11 hours." (in a lovely French accent).

Is it possible to make her actually speak French?

  • Try setting your region to a french speaking one – Tom Gewecke Mar 19 '15 at 20:36
  • 1
    The only way I could get her to speak French is if I set the entire system language to French... and I don't speak it well enough to cope with that. – Tom Leese Mar 19 '15 at 20:40
  • French is such a nice language! The idea to learn it from hourly announcements does not quite convince me. Can you recommend a good book? Re your question: Why not set up a simple bash script that uses say (Info) and let it fire every hour with Launch Agents? – myhd Mar 29 '15 at 15:09
  • I'm actually using Duolingo to learn French, but I just wanted an hourly announcement to jog my memory. I would rather stick to built-in stuff rather than fiddling around with my own launch agents if possible. To be honest, what she says at the moment is good enough for me not to want to achieve this with a shell script. – Tom Leese Mar 29 '15 at 19:56
  • offtopic. Looking for an answer I just found that the different 'Voices' took >3Gb of my precious SSD space. Thanks! – CousinCocaine Mar 31 '15 at 5:01

How did you set up the system to say the time?

I set it up as follows: System Preferences --> Dictation & Speech --> Text to Speech --> Customize --> Add a French voice. It took some time to download.

And then on the command line:

$ export LANG=fr_FR
$ say `date`

This works for me.

What might work in the GUI is to set the date format to French:

System Preferences --> Language & Region --> Advanced --> Format Language - French

As you can see in the screenshots below, this changes the date and format only, not the entire language of the system.

enter image description here

enter image description here

  • Thanks for taking the time to answer, it's a good answer. However, I really only want the time spoken in French but everything in the UI to be left in English. I realise this is a bit of an odd request, and it looks like it's simply not possible, but that's fine! – Tom Leese Apr 1 '15 at 8:21

It works by replacing the files of an english SpeechVoice folder by the french SpeechVoice counterparts - so to say using an english hull and fill it with french content - and some further adjustments:

I have done the following as root user.

Download your preferred french voice. Un-tick all voices you don't want to download.

Make a backup copy of an english voice (accidentally I also d/led Fiona) with Terminal.app or make a copy with the Finder and rename the folders adequately:

cp -R /System/Library/Speech/Voices/Fiona.SpeechVoice /System/Library/Speech/Voices/Fiona.SpeechVoice.backup

Also make a backup copy of the french voice:

cp -R /System/Library/Speech/Voices/Aurelie.SpeechVoice /System/Library/Speech/Voices/Aurelie.SpeechVoice.backup

Now move the content of Aurelie.SpeechVoice.backup to the respective folder(s) in /System/Library/Speech/Voices/Fiona.SpeechVoice

Then open /System/Library/Speech/Voices/Fiona.SpeechVoice/Contents/Info.plist (which is in fact the moved Info.plist of Aurelie) and /System/Library/Speech/Voices/Fiona.SpeechVoice.backup/Contents/Info.plist with a text editor.

Replace the strings of the following keys in the file /System/Library/Speech/Voices/Fiona.SpeechVoice/Contents/Info.plist by the strings of the english original (I don't know if this is really necessary - I just did it):

  • CFBundleIdentifier
  • CFBundleName
  • SUTagName
  • VoiceLocaleIdentifier
  • VoiceName
  • VoiceNameRoot
  • VoiceNumericID

Save the the Info.plist, quit all apps, delete the now empty folder Aurelie.SpeechVoice.backup (and all other unwanted SpeechVoice folders), log-out root, log-in to your common account and disable root (for security reasons).

In System Preferences open Date & Time -> Clock -> Customize Voice and choose the "doctored" english voice. Keep all other speech/language/region settings like they are (some uk-english probably ;-)).

The only cave-eat: Sometimes - or always and the VM in which I tested the modification just skipped the beginning - the voice says "It's dix heures quarante cinq" instead of "Il'est (or C'est?) dix heures quarante cinq".

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .