0.1.0 • Published 11 months ago
@echogarden/macos-native-tts v0.1.0
Node.js binding to the macOS native speech synthesizer
Uses N-API to bind to the native macOS AVSpeechSynthesizer API.
- Speech is returned as a
Int16Arrayraw PCM,22050Hz mono - Will recognize voices installed via the macOS OS
- Addon binaries are pre-bundled. Doesn't require any install-time postprocessing
- Supports macOS
10.14and later, x64 and arm64
Installation
npm install @echogarden/macos-native-tts
Usage examples
Synthesize text
import { synthesize } from '@echogarden/macos-native-tts'
const text = `
Hello World! How are you doing today?
`
const { audioSamples, sampleRate } = synthesize(text, {
voice: 'en-US',
rate: 0.5,
pitchMultiplier: 1.0,
volume: 1.0,
})The returned audioSamples is an Int16Array containing mono samples at a sample rate of sampleRate (usually 22050 or 11025 Hz).
List voices:
import { getVoiceList } from '@echogarden/macos-native-tts'
const voices = getVoiceList()
console.log(voices)Prints:
[
{
identifier: 'com.apple.voice.compact.ar-001.Maged',
name: 'Majed',
quality: 1,
gender: 'male',
language: 'ar-001'
},
{
identifier: 'com.apple.voice.compact.bg-BG.Daria',
name: 'Daria',
quality: 1,
gender: 'female',
language: 'bg-BG'
},
{
identifier: 'com.apple.voice.compact.ca-ES.Montserrat',
name: 'Montse',
quality: 1,
gender: 'female',
language: 'ca-ES'
},
//...
]Building the N-API addons
The library is bundled with pre-built addons, so recompilation shouldn't be needed.
If you still want to compile yourself, for a modification or a fork:
- In the
addonsdirectory, runnpm install, which would install the necessary build tools. - Then run
npm run build-x64(x64) ornpm run build-arm64(arm64)
License
MIT
0.1.0
11 months ago