AutoIt Client fürs Chatten mit den Künstlichen Intelligenzen B.E.S.U.C.H.E.R. und C6CHB (mit DE und EN Text- und Voice-Output, sowie Lippenanimation)

  • Tach!

    In den letzten Tagen haben sich ja meine zwei Chatbot-KI´s herumgeprochen.
    Ja die mit dem hässliche Online-Interface :)

    So habe ich beschlossen einen Clienten für beide zu bauen.
    Einfach zu bedienen: Bot auswählen->Nachricht eingeben->ENTER drücken oder "Send" drücken, der Bot antwortet.
    Das ganze ist schön kompakt und einfach zu bedienen, dennoch funktionieren aber die Zusatzfunktionen, wie z.B. BlackJack nicht.
    Das Skript gibts im Anhang [ getestet unter Win7 Ultimate ]

    Die Antwort wird auch in DE und EN als Sprache ausgegeben!

    Screenshot:
    [Blockierte Grafik: http://down.redio.de/speek.png]

    MfG, campweb

  • Jetzt spricht der Bot auch noch. Falls du eine deutsche Stimme suchst, hier gibt es eine: http://people.fh-landshut.de/~hpk/Sprache.htm Die Auswahl funktioniert dann so:

    Spoiler anzeigen
    [autoit]

    $voiceEN = $o_speech.GetVoices("", "Language=409").Item(0)
    $voiceDE = $o_speech.GetVoices("", "Language=407").Item(0)

    [/autoit] [autoit][/autoit] [autoit]

    ...

    [/autoit] [autoit][/autoit] [autoit]

    If $oldBotID <> $BotID Then
    If $BotID = $C6CHB And IsObj($voiceEN) Then
    $o_speech.Voice = $voiceEN
    ElseIf $BotID = $BESUCHER And IsObj($voiceDE) Then
    $o_speech.Voice = $voiceDE
    EndIf
    $oldBotID = $BotID
    EndIf
    $o_speech.Speak ($sBetween[0], 8)

    [/autoit]

    PS: Die deutsche Stimme funktioniert nur mit 32bit.

  • Immer wenn ich eine Nachricht im Client eingebe kommt dieser fehler:

    [autoit]

    C:\Users\Marian\Desktop\B&C Chat.au3 (46) : ==> Subscript used with non-Array variable.:$sBetween[0] = StringReplace($sBetween[0], "&amp;", "")$sBetween^ ERROR

    [/autoit]
  • Ja, dann war der Server grade nicht erreichbar, oder deine Internetverbindung zu langsam.

    MfG, campweb

  • Sobald man eine 2te Frage stellt stürzt das Script ab !
    Das hat kein bissl was mit "lahmer verbindung" zu tun !

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • SO, SPrachen sind alle Eingebaut, Serverproblem halbwegs geflickt, und Animation hinzugefügt.

    MfG, campweb

  • bei mir funzt das mit der deutschen stimme nicht habe 64bit, hat das was damit zu tun?

    Edit: Ja hat es ^^ Und jetzt funktioniert es auch :)

    [autoit]


    Func Ulam($n)
    Return 1
    EndFunc

    [/autoit]


    Rekursion FTW :D

    Einmal editiert, zuletzt von retrokid (9. August 2011 um 11:13)

  • Hay, ich hatte sowas auch mal gemacht nur nicht mit dem reden , und ich hab mich da an der Mirandaversion des Alicebots gehängt und hab die datei eben mit gehen lassen und auslesen.
    hatte aber noch eine zusatz funktion da es bei mir lokal war, konnte ich sagen wenn das "Signalwort" ->"öffne"
    im text vorkam kannte man eine vorher definierte sache (Datei,Programm,Link) öffnen lassen.
    so als zeitvertreib und kleine hilfe viellciht könntest du ja sowas auch mit einbauen? :)

  • Nach drei oder so Sätzen kommt bei mir immer Server Error.

    Außerdem ist das da ziemlich interessant programmiert:

    [autoit]

    HotKeySet("{ENTER}", "_Send")
    Global $Send = GUICtrlCreateButton("Send", 560, 40, 51, 21, 0)

    [/autoit][autoit][/autoit][autoit]

    Func _Send()
    _GUICtrlButton_Click($Send)
    EndFunc

    [/autoit]

    Dieser Hotkey ist lästig und nicht notwendig. Wie wäre es mit $BS_DEFPUSHBUTTON als Style oder mit GUISetAccelerators?

  • Nicht schlecht... aber trotzdem eine Verbesserung: Wie wäre es wenn du die Nachrichten ins Editfeld UNTEN hin schreibst und nicht oben drauf? Sowas ist eben bei mir rausgekommen (vorallem auf das Erste achten)

    Spoiler anzeigen

    Human: DU!!!
    B.E.S.U.C.H.E.R. (Deutsch) (Text + Voice Output): ""? Ich, &lt;getname&gt;&lt;/getname&gt; ?
    Human: das hast du mich doch gefragt...
    B.E.S.U.C.H.E.R. (Deutsch) (Text + Voice Output): Wer hat Dir das erzaehlt?
    Human: Eine Maschine...
    B.E.S.U.C.H.E.R. (Deutsch) (Text + Voice Output): Was ist eine Maschine?
    Human: Heyho
    B.E.S.U.C.H.E.R. (Deutsch) (Text + Voice Output): Versuch mal herauszufinden, ob hier ein Mensch oder eine Maschine spricht!


    Außerdem: Wieso benutzt du HotKeySet Enter zum senden?? Es gibt einen GUICtrl Style der direkt festlegt das bei enterdrücken der Button gedrückt wird.

    [autoit]

    $BS_DEFPUSHBUTTON

    [/autoit]
  • Sag mal - Die Bots sind aber nicht deine Erfindung !
    Auf Pandorabots.com bekommt man die und kann eigene Antworten / Fragen hinzufügen, und viele Fragen/Antworten sind bereits vorhanden !

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal