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;
	skipRunningCheck?: boolean;
};

Please refer to man say for usage of all options.

getAudioDevices()

To obtain a list of audio output devices.

Returns 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[]>.

checkIfSayIsRunning()

To obtain the information of the say process.

Returns a Promise<ProcessDescriptor | undefined>.

killRunningSay()

To kill the say process if it's running.

Related

License

MIT