Computerstimme in Programm integrieren



  • Muß es unbedingt OpenSOurce sien?

    Microsoft Speech SDK / Micosoft Speech .NET 3 hab' ich zwar persönlich noch nicht ausprobiert, aber es soll ja nicht SOOO schlecht sein... 🕶



  • Vielen Dank für eure Ideen!
    Nachdem ich mir die SDK Bibliotheken und die registrierte Version von Microsoft Visual Studio 2008 (via msdn) geholt habe, stehe ich leider wieder vor einem Problem.

    Ich habe mir einige Codebeispiele runtergeladen, zB Eliza Chatbot und ähnliche Programme. Auch habe ich dieses Tutorial befolgt: http://msdn.microsoft.com/en-us/visualc/bb924350.aspx und dabei genau die selbe Ausgabe wie der Autor auf meinem Rechner - nur leider mit einem Unterschied.

    Es gibt keinen Fehler, keinen Abbruch; das Problem ist, dass mir das Programm (nach Strg+F5) nie die Chance zur Eingabe gibt. Und das ist bei jeder Konsolen Anwendung so, es fängt zwar alles planmäßig an und alle Zeilen, die es am Anfang anzeigen soll, werden auch angezeigt, nur die letzte Line ist immer:
    Drücken Sie eine beliebige Taste . . .

    -> d.h. das Programm beendet sich bevor es eine Eingabe zulässt.

    Vielleicht ist das ein bekannter Fehler? Ich wäre euch sehr über eine hilfreiche Antwort dankbar!!



  • "espeak" hilft auch bei text2speech und ist keine 200kb groß



  • Hallo rajning,

    wie liest du denn die Eingabe ein? Zeig doch mal etwas Code.

    Ebenfalls Grüße aus Bielefeld -)



  • Th69: Student?

    hmm ich glaube ich verstehe dich nicht ganz, das Problem sollte eigentlich nicht an dem Code liegen - die Warnungen die hier zB kommen sollten eigentlich nichts zur Sache tun.
    Ich denke, dass auf anderen PCs, der selbe Code, mit den selben Warnungen, funktionieren würde. Bei mir beendet sich das Programm nach dem starten sofort selbst, siehe oben.

    Hier trotzdem noch schnell die Ausgabe:

    1>------ Erstellen gestartet: Projekt: TTS demo, Konfiguration: Debug Win32 ------
    1>Kompilieren...
    1>TTS demo.cpp
    1>c:\other\tools\microsoft visual studio 9.0\vc\include\cstdio(49) : warning C4995: 'gets': der Name, der als #pragma markiert war, wurde verworfen
    1>c:\other\tools\microsoft visual studio 9.0\vc\include\cstdio(53) : warning C4995: 'sprintf': der Name, der als #pragma markiert war, wurde verworfen
    1>c:\other\tools\microsoft visual studio 9.0\vc\include\cstdio(56) : warning C4995: 'vsprintf': der Name, der als #pragma markiert war, wurde verworfen
    1>c:\other\tools\microsoft visual studio 9.0\vc\include\cstring(22) : warning C4995: 'strcat': der Name, der als #pragma markiert war, wurde verworfen
    1>c:\other\tools\microsoft visual studio 9.0\vc\include\cstring(23) : warning C4995: 'strcpy': der Name, der als #pragma markiert war, wurde verworfen
    1>c:\other\tools\microsoft visual studio 9.0\vc\include\cwchar(36) : warning C4995: 'swprintf': der Name, der als #pragma markiert war, wurde verworfen
    1>c:\other\tools\microsoft visual studio 9.0\vc\include\cwchar(37) : warning C4995: 'vswprintf': der Name, der als #pragma markiert war, wurde verworfen
    1>c:\other\tools\microsoft visual studio 9.0\vc\include\cwchar(39) : warning C4995: 'wcscat': der Name, der als #pragma markiert war, wurde verworfen
    1>c:\other\tools\microsoft visual studio 9.0\vc\include\cwchar(41) : warning C4995: 'wcscpy': der Name, der als #pragma markiert war, wurde verworfen
    1>Verknüpfen...
    1>Das Manifest wird eingebettet...
    1>Das Buildprotokoll wurde unter "file://c:\Users\rajn\Documents\Visual Studio 2008\Projects\TTS demo\TTS demo\Debug\BuildLog.htm" gespeichert.
    1>TTS demo - 0 Fehler, 9 Warnung(en)
    ========== Erstellen: 1 erfolgreich, Fehler bei 0, 0 aktuell, 0 übersprungen ==========
    

    der Code ist nach diesem Tutorial erstellt:
    http://msdn.microsoft.com/en-us/visualc/bb924350.aspx

    Vielleicht könnte es jemand mal selbst schnell ausprobieren?



  • Die englische Version lautet "'function': name was marked as #pragma deprecated", die Übersetzung ist offenbar aus dem Automaten des billigsten Anbieters.

    liegt daran: http://msdn.microsoft.com/en-us/library/ms861501.aspx
    und läßt sich mit

    #define STRSAFE_NO_DEPRECATE
    

    vor dem Reinladen der Windows-Header abstellen.



  • So in dem Stil geht das ganz gut:

    void CSAPI001Dlg::NameAusgeben()
    {
    	WCHAR* VoiceName;
    	//pVoiceToken->GetId(&VoiceName); //Gesamteintrag aus Registry
    	pVoiceToken->GetStringValue(VoiceName,&VoiceName);
    	m_Edit_Statuszeile = VoiceName;
    	UpdateData(FALSE);
    
    	CString str = "Hallo"; //TODO: Voice-Name 
    	hr = pEnum->Item(ulVoiceNr, &pVoiceToken);
    	hr = pVoice->SetVoice(pVoiceToken);
    	hr = pVoice->SetRate(m_Speed);
    	hr = pVoice->SetVolume(m_Volume+100);
    	hr = pVoice->Speak(str.AllocSysString(), SPF_IS_XML, NULL );
    }
    


  • Da sind aber noch ein, zwei memory Leaks drin 🙂

    (Ich geh' mal davon aus das ist ein COM - Interface)



  • rajning schrieb:

    Im Stil von "Microsoft Sam"

    Ja dann nimm das halt. f'`8k

    Autocogito

    Gruß, TGGC (Was Gamestar sagt...)



  • Hat denn jemand das Beispiel schon ausprobiert?

    Danke peterchen für den Code, der streicht tatsächlich die Warnungen im Compiler - jedoch ist das Ergebnis das selbe.

    "Druecken sie eine beliebige Taste..."
    Steht immer schon anfangs nach Strg+F5 in der letzten Zeile der Konsole!
    -> Ich kann mit dem Programm nichts machen



  • Ja dann halt mal mit dem Debugger gucken, wie weit er kommt - und ab ubd zu ein paar HRESULT's abprüfen 😉



  • TGGC schrieb:

    rajning schrieb:

    Im Stil von "Microsoft Sam"

    Ja dann nimm das halt. f'`8k

    Autocogito

    Gruß, TGGC (Was Gamestar sagt...)

    jetzt bin ich mal auf deinen Link gegangen, du bist ja ein komischer Kauz... aber beleidigend sollte man doch nich so schnell werden - auch wenn man quasi für das Forum lebt. (Mit deinen Beiträgen - ich war mal 6 Jahre jeden Tag in einem Forum aktiv und habs nicht einmal auf 400 Kommentare geschafft - ok wenns nur solche wie deine wären..)
    Wie alt bist du denn?

    //ok ich merk gerade, das wäre etwas offtopic ^^


Anmelden zum Antworten