Text-zu-Sprache ist nicht sehr schwer, man kann nur Rohr einen Text zu einem der TTS-Engine Binärdateien like:
echo "Just what do you think you're doing, Dave?" | festival --tts
oder:
espeak -ven+f3 -k5 -s150 "I've just picked up a fault in the AE35 unit"
Wenn Sie ein nicht finden API können Sie wahrscheinlich nur spawn a process (siehe auch BasiSamples).
Spracherkennung ist ein ganz anderes Biest. Sie können versuchen, pocketsphinx (basierend auf CMU Sphinx), aber ich bezweifle es gibt eine Vala-Bindung für diese leicht verfügbar (so dass Sie eine Vapi-Datei selbst schreiben müssen).
Andere Spracherkennungs-Engines sind verfügbar, suchen Sie einfach nach "Linux-Spracherkennung" mit Ihrer bevorzugten Websuche. Ein anderer Ansatz wäre, tatsächlich einige Web-API aufzurufen, die die schwere Arbeit für Sie erledigt, aber dann müssten Sie Ihren Benutzern sagen, dass ihre Daten an das Internet gesendet werden (Datenschutzbelange kommen hier ins Spiel).
PS: Auf stackoverflow Fragen über Bibliotheken werden abgeraten (so möchten Sie vielleicht wieder vorsichtig read the tour). Normalerweise habe ich dafür gestimmt, Ihre Frage zu beenden (die für eine genaue Antwort auch zu weit gefasst ist). Auf der anderen Seite wollte ich Ihnen ein paar Hinweise geben.
Danke, aber die Befehle in den Codeexemplaren sind in bash. Wie kann ich sie in mein Projekt integrieren? – user258456
Sie können etwas wie 'Process.spawn_command_line_sync (" Ihr Bash-Befehl ");' ausführen, um Befehlszeilen-Strings über Ihre Vala-App auszuführen. –
Die Verwendung einer VAPI-Datei für libespeak oder ähnliches wäre direkter (ohne das Erzeugen von Unterprozessen), aber ich bezweifle, dass es eine fertige VAPI-Datei zu verwenden gibt, so dass Sie diese selbst erstellen müssen. –