//-------------------------------------------------------------- void ofApp::keyPressed (int key) { if (key == 'n') { if (j<files.size()) { bEngineInitialed = engineInit(); engineOpen(files[j]); } j++; } if( key == 's' ) { //soundStream.start(); //ps_start_utt(ps); } if( key == 'e' ) { //soundStream.stop(); //engineClose(); } }
void PlatformSpeechSynthesisProviderEfl::initializeVoiceList(Vector<RefPtr<PlatformSpeechSynthesisVoice>>& voiceList) { if (!engineInit()) { fireSpeechEvent(SpeechError); return; } espeak_VOICE* espeakVoice = currentVoice(); ASSERT(espeakVoice); String currentLanguage = ASCIILiteral(espeakVoice->languages); const espeak_VOICE** voices = espeak_ListVoices(nullptr); if (!voices) { fireSpeechEvent(SpeechError); return; } // Voices array is terminated by the nullptr for (int i = 0; voices[i]; i++) { const espeak_VOICE* voice = voices[i]; String id = ASCIILiteral(voice->identifier); String name = ASCIILiteral(voice->name); String language = ASCIILiteral(voice->languages); voiceList.append(PlatformSpeechSynthesisVoice::create(id, name, language, true, language == currentLanguage)); } }
void PlatformSpeechSynthesisProviderEfl::speak(PassRefPtr<PlatformSpeechSynthesisUtterance> utterance) { if (!engineInit() || !utterance) { fireSpeechEvent(SpeechError); return; } m_utterance = utterance; String voice = voiceName(m_utterance); espeak_SetVoiceByName(voice.utf8().data()); espeak_SetParameter(espeakRATE, convertRateToEspeakValue(m_utterance->rate()), 0); espeak_SetParameter(espeakVOLUME, convertVolumeToEspeakValue(m_utterance->volume()), 0); espeak_SetParameter(espeakPITCH, convertPitchToEspeakValue(m_utterance->pitch()), 0); String textToRead = m_utterance->text(); espeak_ERROR err = espeak_Synth(textToRead.utf8().data(), textToRead.length(), 0, POS_CHARACTER, 0, espeakCHARS_AUTO, 0, nullptr); if (err == EE_INTERNAL_ERROR) { fireSpeechEvent(SpeechError); m_utterance = nullptr; return; } fireSpeechEvent(SpeechStart); }
int main() { engineInit(); engineRun(); engineDestroy(); return 0; }