echogarden
Version:
An easy-to-use speech toolset. Includes tools for synthesis, recognition, alignment, speech translation, language detection, source separation and more.
41 lines (36 loc) • 1 kB
text/typescript
import { defaultGnuSpeechOptions, GnuSpeechOptions, synthesize as gnuSpeechSynthesize } from '@echogarden/gnuspeech-wasm'
import { SynthesisVoice } from '../api/Synthesis.js'
import { decodeWaveToRawAudio } from '../audio/AudioUtilities.js'
import { extendDeep } from '../utilities/ObjectUtilities.js'
export async function synthesize(text: string, options: GnuSpeechOptions) {
const gnuSpeechOptions = extendDeep(defaultGnuSpeechOptions, options)
const { audioData, params } = await gnuSpeechSynthesize(text, gnuSpeechOptions)
return decodeWaveToRawAudio(audioData)
}
export const voiceList: SynthesisVoice[] = [
{
name: 'male',
languages: ['en-US', 'en'],
gender: 'male',
},
{
name: 'female',
languages: ['en-US', 'en'],
gender: 'female',
},
{
name: 'large_child',
languages: ['en-US', 'en'],
gender: 'unknown',
},
{
name: 'small_child',
languages: ['en-US', 'en'],
gender: 'unknown',
},
{
name: 'baby',
languages: ['en-US', 'en'],
gender: 'unknown',
},
]