示例#1
0
//--------------------------------------------------------------
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);
}
示例#4
0
文件: engine.c 项目: AndrewBelt/bored
int main() {
	engineInit();
	engineRun();
	engineDestroy();
	return 0;
}