Skip to content

The macOS built-in `say` interface for JavaScript

License

Notifications You must be signed in to change notification settings

LitoMore/mac-say

Repository files navigation

mac-say

The macOS built-in say CLI for JavaScript

Install

npm i mac-say

Usage

import {say} from 'mac-say';

await say('Hello, world!');
await say('Hello! My name is Cellos.', {voice: 'Cellos'});

API

say(text, options?)

text

Type: string

The content to be converted to audible speech.

options

Type: SayOptions

Optional. All available options are listed below:

type SayOptions = {
	voice?: string;
	rate?: number;
	audioDevice?: string;
	quality?: number;
	inputFile?: string;
	outputFile?: string;
	networkSend?: string;
	channels?: number;
};

Please refer to man say for usage of all options.

getAudioDevices()

To obtain a list of audio output devices.

Return a Promise<Device[]>.

getDataFormats(fileFormat)

To obtain a list of audio data formats for a file format specified explicitly or by file name.

Returns a Promise<DataFormat[]>.

fileForamt

Type: string

Formats other than linear PCM are specified by giving their format identifiers (aac, alac).

getFileFormats()

To obtain a list of writable file formats.

Returns a Promise<FileFormat[]>.

getVoices()

To obtain a list of voices installed in the system.

Returns a Promise<Voice[]>.

License

MIT