.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SAY 1" .TH SAY 1 "2020-08-13" "1.0" "Speech Synthesis Manager" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" say \- Convert text to audible speech .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& say [\-v voice] [\-r rate] [\-o outfile [audio format options] | \-n name:port | \-a device] [\-f file | string ...] .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This tool uses the Speech Synthesis manager to convert input text to audible speech and either play it through the sound output device chosen in System Preferences or save it to an \s-1AIFF\s0 file. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fIstring\fR" 4 .IX Item "string" Specify the text to speak on the command line. This can consist of multiple arguments, which are considered to be separated by spaces. .IP "\fB\-f\fR \fIfile\fR, \fB\-\-input\-file\fR=\fIfile\fR" 4 .IX Item "-f file, --input-file=file" Specify a file to be spoken. If \fIfile\fR is \fI\-\fR or neither this parameter nor a message is specified, read from standard input. .IP "\fB\-v\fR \fIvoice\fR, \fB\-\-voice\fR=\fIvoice\fR" 4 .IX Item "-v voice, --voice=voice" Specify the voice to be used. Default is the voice selected in System Preferences. To obtain a list of voices installed in the system, specify '?' as the voice name. .IP "\fB\-r\fR \fIrate\fR, \fB\-\-rate\fR=\fIrate\fR" 4 .IX Item "-r rate, --rate=rate" Speech rate to be used, in words per minute. .IP "\fB\-o\fR \fIout.aiff\fR, \fB\-\-output\-file\fR=\fIfile\fR" 4 .IX Item "-o out.aiff, --output-file=file" Specify the path for an audio file to be written. \s-1AIFF\s0 is the default and should be supported for most voices, but some voices support many more file formats. .IP "\fB\-n\fR \fIname\fR, \fB\-\-network\-send\fR=\fIname\fR" 4 .IX Item "-n name, --network-send=name" .PD 0 .IP "\fB\-n\fR \fIname:port\fR, \fB\-\-network\-send\fR=\fIname:port\fR" 4 .IX Item "-n name:port, --network-send=name:port" .IP "\fB\-n\fR \fI:port\fR, \fB\-\-network\-send\fR=\fI:port\fR" 4 .IX Item "-n :port, --network-send=:port" .IP "\fB\-n\fR \fI:\fR, \fB\-\-network\-send\fR=\fI:\fR" 4 .IX Item "-n :, --network-send=:" .PD Specify a service name (default \*(L"AUNetSend\*(R") and/or \s-1IP\s0 port to be used for redirecting the speech output through AUNetSend. .IP "\fB\-a\fR \fI\s-1ID\s0\fR, \fB\-\-audio\-device\fR=\fI\s-1ID\s0\fR" 4 .IX Item "-a ID, --audio-device=ID" .PD 0 .IP "\fB\-a\fR \fIname\fR, \fB\-\-audio\-device\fR=\fIname\fR" 4 .IX Item "-a name, --audio-device=name" .PD Specify, by \s-1ID\s0 or name prefix, an audio device to be used to play the audio. To obtain a list of audio output devices, specify '?' as the device name. .IP "\fB\-\-progress\fR" 4 .IX Item "--progress" Display a progress meter during synthesis. .IP "\fB\-i\fR, \fB\-\-interactive\fR, \fB\-\-interactive\fR=\fImarkup\fR" 4 .IX Item "-i, --interactive, --interactive=markup" Print the text line by line during synthesis, highlighting words as they are spoken. Markup can be one of .RS 4 .IP "\(bu" 4 A terminfo capability as described in \fBterminfo\fR\|(5), e.g. \fBbold\fR, \fBsmul\fR, \fBsetaf 1\fR. .IP "\(bu" 4 A color name, one of \fBblack\fR, \fBred\fR, \fBgreen\fR, \fByellow\fR, \fBblue\fR, \fBmagenta\fR, \fBcyan\fR, or \fBwhite\fR. .IP "\(bu" 4 A foreground and background color from the above list, separated by a slash, e.g. \fBgreen/black\fR. If the foreground color is omitted, only the background color is set. .RE .RS 4 .Sp If markup is not specified, it defaults to \fBsmso\fR, i.e. reverse video. .RE .PP If the input is a \s-1TTY,\s0 text is spoken line by line, and the output file, if specified, will only contain audio for the last line of the input. Otherwise, text is spoken all at once. .SH "AUDIO FORMATS" .IX Header "AUDIO FORMATS" Starting in MacOS X 10.6, file formats other than \s-1AIFF\s0 may be specified, although not all third party synthesizers may initially support them. In simple cases, the file format can be inferred from the extension, although generally some of the options below are required for finer grained control: .IP "\fB\-\-file\-format\fR=format" 4 .IX Item "--file-format=format" The format of the file to write (\s-1AIFF,\s0 caff, m4af, \s-1WAVE\s0). Generally, it's easier to specify a suitable file extension for the output file. To obtain a list of writable file formats, specify '?' as the format name. .IP "\fB\-\-data\-format\fR=format" 4 .IX Item "--data-format=format" The format of the audio data to be stored. Formats other than linear \s-1PCM\s0 are specified by giving their format identifiers (aac, alac). Linear \s-1PCM\s0 formats are specified as a sequence of: .RS 4 .IP "Endianness (optional)" 4 .IX Item "Endianness (optional)" One of \fB\s-1BE\s0\fR (big endian) or \fB\s-1LE\s0\fR (little endian). Default is native endianness. .IP "Data type" 4 .IX Item "Data type" One of \fBF\fR (float), \fBI\fR (integer), or, rarely, \fB\s-1UI\s0\fR (unsigned integer). .IP "Sample size" 4 .IX Item "Sample size" One of \fB8\fR, \fB16\fR, \fB24\fR, \fB32\fR, \fB64\fR. .RE .RS 4 .Sp Most available file formats only support a subset of these sample formats. .Sp To obtain a list of audio data formats for a file format specified explicitly or by file name, specify '?' as the format name. .Sp The format identifier optionally can be followed by \fB\f(CB@samplerate\fB\fR and \fB/hexflags\fR for the format. .RE .IP "\fB\-\-channels\fR=channels" 4 .IX Item "--channels=channels" The number of channels. This will generally be of limited use, as most speech synthesizers produce mono audio only. .IP "\fB\-\-bit\-rate\fR=rate" 4 .IX Item "--bit-rate=rate" The bit rate for formats like \s-1AAC.\s0 To obtain a list of valid bit rates, specify '?' as the rate. In practice, not all of these bit rates will be available for a given format. .IP "\fB\-\-quality\fR=quality" 4 .IX Item "--quality=quality" The audio converter quality level between 0 (lowest) and 127 (highest). .SH "ERRORS" .IX Header "ERRORS" \&\fBsay\fR returns 0 if the text was spoken successfully, otherwise non-zero. Diagnostic messages will be printed to standard error. .SH "EXAMPLES" .IX Header "EXAMPLES" .Vb 6 \& say Hello, World \& say \-v Alex \-o hi \-f hello_world.txt \& say \-\-interactive=/green spending each day the color of the leaves \& say \-o hi.aac \*(AqHello, [[slnc 200]] World\*(Aq \& say \-o hi.m4a \-\-data\-format=alac Hello, World. \& say \-o hi.caf \-\-data\-format=LEF32@8000 Hello, World \& \& say \-v \*(Aq?\*(Aq \& say \-\-file\-format=? \& say \-\-file\-format=caff \-\-data\-format=? \& say \-o hi.m4a \-\-bit\-rate=? .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\*(L"Speech Synthesis Programming Guide\*(R"