RosettaCodeData/Task/Speech-synthesis/Racket/speech-synthesis.rkt
Ingy döt Net 6f050a029e update
2013-06-05 21:47:54 +00:00

12 lines
497 B
Racket

#lang racket
(require racket/lazy-require)
(lazy-require [ffi/com (com-create-instance com-release com-invoke)])
(define (speak text)
(cond [(eq? 'windows (system-type))
(define c (com-create-instance "SAPI.SpVoice"))
(com-invoke c "Speak" text)
(com-release c)]
[(ormap find-executable-path '("say" "espeak"))
=> (λ(exe) (void (system* exe text)))]
[else (error 'speak "I'm speechless!")]))
(speak "This is an example of speech synthesis.")