Avatar billede _henrik Nybegynder
14. oktober 2002 - 21:40 Der er 4 kommentarer og
1 løsning

Java Speech

jeg har hentet free tts fra http://freetts.sourceforge.net/docs/index.php

jeg kan compile koden uden problemmer men når jeg prøver at kører den får jeg følgende fejl:

Can't find synthesizer.
Make sure that there is a "speech.properties" file at either of these locations:
user.home: C:\Documents and Settings\Henrik
java.home: C:\j2re1.4.0_01\lib

jeg har placeret speech.properties filen begge steder så jeg ved ikke hvor fejlen er håber at nogen kan hjælpe mig.
her er koden:

import java.io.File;
import java.util.Locale;
import javax.speech.Central;
import javax.speech.Engine;
import javax.speech.synthesis.Synthesizer;
import javax.speech.synthesis.SynthesizerModeDesc;
import javax.speech.synthesis.SynthesizerProperties;
import javax.speech.synthesis.Voice;


public class Speech
{
    Synthesizer synthesizer;
    String words;

    public Speech(String words)
    {
    this.words = words;
    }
   
    public void setVoice()
    {
    try
        {
                String synthesizerName = System.getProperty("synthesizerName","Unlimited domain FreeTTS Speech Synthesizer from Sun Labs");


        SynthesizerModeDesc desc = new SynthesizerModeDesc
            (synthesizerName,
            null,
            Locale.US,
            Boolean.FALSE,       
            null);               

        synthesizer = Central.createSynthesizer(desc);

        if (synthesizer == null)
            {
            String message = "Can't find synthesizer.\n" +
                            "Make sure that there is a \"speech.properties\" file " +
                            "at either of these locations: \n";
       
            message += "user.home    : " +
            System.getProperty("user.home") + "\n";
            message += "java.home/lib: " + System.getProperty("java.home")
                    + File.separator + "lib\n";
           
                System.err.println(message);
            System.exit(1);
            }

       
        String voiceName = System.getProperty("voiceName", "kevin16");
        Voice voice = new Voice(voiceName, Voice.GENDER_DONT_CARE, Voice.AGE_DONT_CARE, null);

       
        synthesizer.allocate();
        synthesizer.resume();
        synthesizer.getSynthesizerProperties().setVoice(voice);
        }
    catch(Exception e)
        {
        System.out.println(e);
        }
    }

    public void doSpeak()
    {
    try
        {
        // speak the "Hello world" string
        synthesizer.speakPlainText(words, null);
       
        // wait till speaking is done
        synthesizer.waitEngineState(Synthesizer.QUEUE_EMPTY);
       
        // clean up
        synthesizer.deallocate();
        }
    catch(Exception e)
        {
        System.out.println(e);
        }
    }

    public static void main(String[] argv)
    {
    String words = "Hello world!";
    Speech speech = new Speech(words);
    speech.setVoice();
        speech.doSpeak();
    }
}
Avatar billede magoo20000 Nybegynder
14. oktober 2002 - 21:56 #1
Prøv med String synthesizerName = System.getProperty("user.home","Unlimited domain FreeTTS Speech Synthesizer from Sun Labs");
Avatar billede _henrik Nybegynder
14. oktober 2002 - 22:30 #2
//magoo20000
jeg har prøvet at ændre koden med dit forslag men jeg får stadigvæk den samme fejl
Avatar billede magoo20000 Nybegynder
14. oktober 2002 - 22:45 #3
Hmmm.. Jeg har sikkert stiret mig blind på det med prøv med speech.properties sat ind istedet for user.home?
Det er bare et gæt, men alt skal vel prøves nu:-)
Avatar billede _henrik Nybegynder
14. oktober 2002 - 23:40 #4
//magoo20000
jeg har lige prøvet dit forslag, men det virkede desværre ikke. Jeg har lige været inde på suns hejmmeside der er der flere der har samme problem.
Avatar billede _henrik Nybegynder
25. august 2003 - 03:19 #5
lukker spørgsmålet...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester