win_say – Text to speech module for Windows to speak messages and optionally play sounds — Ansible Documentation

- AnsibleFest
- Products
- Community
- Webinars & Training
- Blog

Documentation

# win_say – Text to speech module for Windows to speak messages and optionally play sounds

- Synopsis
- Parameters
- Notes
- See Also
- Examples
- Return Values
- Status

## Synopsis

- Uses .NET libraries to convert text to speech and optionally play .wav sounds. Audio Service needs to be running and some kind of speakers or headphones need to be attached to the windows target(s) for the speech to be audible.

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---
end_sound_path path |  | Full path to a `.wav` file containing a sound to play after the text has been spoken. Useful on conference calls to alert other speakers that ansible has finished speaking.
msg string |  | The text to be spoken. Use either `msg` or `msg_file`. Optional so that you can use this module just to play sounds.
msg_file path |  | Full path to a windows format text file containing the text to be spoken. Use either `msg` or `msg_file`. Optional so that you can use this module just to play sounds.
speech_speed integer | Default: 0 | How fast or slow to speak the text. Must be an integer value in the range -10 to 10. -10 is slowest, 10 is fastest.
start_sound_path path |  | Full path to a `.wav` file containing a sound to play before the text is spoken. Useful on conference calls to alert other speakers that ansible has something to say.
voice string |  | Which voice to use. See notes for how to discover installed voices. If the requested voice is not available the default voice will be used. Example voice names from Windows 10 are `Microsoft Zira Desktop` and `Microsoft Hazel Desktop`.

## Notes

Note

- Needs speakers or headphones to do anything useful.

- To find which voices are installed, run the following Powershell commands.

  > Add-Type -AssemblyName System.Speech $speech = New-Object -TypeName System.Speech.Synthesis.SpeechSynthesizer $speech.GetInstalledVoices() | ForEach-Object { $_.VoiceInfo } $speech.Dispose()

- Speech can be surprisingly slow, so it’s best to keep message text short.

## See Also

See also

win_msg – Sends a message to logged in users on Windows hosts
  The official documentation on the win_msg module.
win_toast – Sends Toast windows notification to logged in users on Windows 10 or later hosts
  The official documentation on the win_toast module.

## Examples

    - name: Warn of impending deployment
      win_say:
        msg: Warning, deployment commencing in 5 minutes, please log out.

    - name: Using a different voice and a start sound
      win_say:
        start_sound_path: C:\Windows\Media\ding.wav
        msg: Warning, deployment commencing in 5 minutes, please log out.
        voice: Microsoft Hazel Desktop

    - name: With start and end sound
      win_say:
        start_sound_path: C:\Windows\Media\Windows Balloon.wav
        msg: New software installed
        end_sound_path: C:\Windows\Media\chimes.wav

    - name: Text from file example
      win_say:
        start_sound_path: C:\Windows\Media\Windows Balloon.wav
        msg_file: AppData\Local\Temp\morning_report.txt
        end_sound_path: C:\Windows\Media\chimes.wav

## Return Values

Common return values are documented here, the following are the fields unique to this module:

Key | Returned | Description
--- | --- | ---
message_text string | success | The text that the module attempted to speak. Sample: Warning, deployment commencing in 5 minutes.
voice string | success | The voice used to speak the text. Sample: Microsoft Hazel Desktop
voice_info string | when requested voice could not be loaded | The voice used to speak the text. Sample: Could not load voice TestVoice, using system default voice

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]
- This module is maintained by the Ansible Community. [community]

### Authors

- Jon Hawkesworth (@jhawkesworth)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.