News:

Welcome to RetroCoders Community

Main Menu

ChatBot Danny

Started by ron77_db, May 07, 2022, 09:29 AM

Previous topic - Next topic

ron77_db

Hello all :)

I'm glad to say my chatbot Danny is now an online chatbot/website. That's right. You can surf to it and talk to it online - the chatbot is an fbc Linux 64-bit executable uploaded to a hosting server where with the help of a PHP file and HTML page is accessible to the users - the Linux binaries were compiled as "-static" build command the PHP script converts utf-8 input to ANSI and transfer it to the executable and converts the ANSI output back to utf-8 encoding (that's why if you type ' in the input the bot replies an empty reply - the PHP and HTML scripts were done with the help of chatGPT after many tests trails and errors...

The chatbot is NOT with AI or machine learning and is in beta state and currently does not record conversations history (it doesn't write to files). I would appreciate any feedback regarding its replies or how to improve it...

also please remember it's not chatGPT not even close... and it's based on a real person who was a dear friend of mine and who was religious (that's why it talks and mentions his beliefs which could be annoying)

https://danny-chat.net/

Kind Regards.
Ron77

EDIT 2023-08-17 - for preservation purposes and for those who wish to use the chatbot locally as a desktop GUI tts app the chatbot been uploaded to github on a new repository here is the link:

https://github.com/ronblue77/fb_chatbot_danny

ron77

okay here is a simpler console (screen) version of the chatbot...

file "main.bas":
#include "vbcompat.bi"

Screen 19

Const file = "log.txt"

Type ArraySet
	ReDim Keywords(any) As String
	ReDim Replys(Any)   As String
End Type

'for words switch
redim shared as string wordIn(0), wordOut(0)
dim shared as long wCnt

CONST punctuation = "?!,.:;<>(){}[]"
'const logfile = "log.txt"
'dim shared as string file
redim shared as string pray(any), pray1(any), pray2(any), pray3(any), pray4(any)
redim shared deafult(any) as STRING
redim shared xwords(any) as STRING
redim shared love(any) as STRING
redim shared noscared(any) as STRING
redim shared scared(any) as STRING
redim shared botQ(any) as string
redim shared who(any) as STRING
redim shared command1(any) as STRING
ReDim Shared g_Key_Reply(Any) As ArraySet
Dim Shared As string inpt, rply ' for console chatbot
dim shared as boolean isUserQuestion = true
dim shared as string botQuestions
dim shared counterx as Long
counterx = 1

''for FB WIN windows 10 to use with voices.exe TTS CLI
DIM SHARED TTSvoice as STRING
TTSvoice = "Microsoft David Desktop" 'tts female or male voice (or Zira or David)

Randomize()

Dim f AS LONG = FREEFILE()
open file for append as #f
close #f

sub writefile2(text2 as String)	
	dim f as long = freefile()
	open file for append as #f
	print #f , text2
	close #f	
End Sub

'return whole text file
function txtfile(f AS STRING) as STRING
	DIM AS STRING buffer
	DIM h AS LONG = FREEFILE()
	OPEN f FOR BINARY AS #h
	buffer = SPACE(LOF(h))
	GET #h ,  , buffer
	CLOSE #h
	return buffer
End function

SUB sAppend(arr() AS string, item AS STRING)
REDIM PRESERVE arr(LBOUND(arr) TO UBOUND(arr) +1)
arr(UBOUND(arr)) = item
END Sub

FUNCTION isolatePunctuation (s AS STRING) as string
	'isolate punctuation so when we look for key words they don't interfere
	DIM as string b
	b = ""
	FOR i as integer = 1 TO LEN(s)
		IF INSTR(punctuation, MID(s, i, 1)) > 0 THEN b = b + " " + MID(s, i, 1) + " " ELSE b = b + MID(s, i, 1)
	NEXT
	return b
END FUNCTION

FUNCTION joinPunctuation (s AS STRING) as String
	'undo isolatePuntuation$
	DIM AS STRING b, find
	Dim place AS long
	b = s
	FOR i as integer = 1 TO LEN(punctuation)
		find = " " + MID(punctuation, i, 1) + " "
		place = INSTR(b, find)
		WHILE place > 0
			IF place = 1 THEN
				b = MID(punctuation, i, 1) + MID(b, place + 3)
			ELSE
				b = MID(b, 1, place - 1) + MID(punctuation, i, 1) + MID(b, place + 3)
			END IF
			place = INSTR(b, find)
		WEND
	NEXT
	return b
END Function

Sub speak( text As string )        
	Print "Danny: " + text
	#Ifdef __FB_LINUX__
		Shell("espeak-ng -v us-mbrola-2 -s 120 " & chr(34) & text & chr(34))
	#Else
		shell("voice -r -1 -n " & Chr(34) & TTSvoice & Chr(34) & " " & Chr(34) & text & Chr(34))
	#EndIf
	writefile2 ("Danny: " + text)
End Sub


SUB loadArrays(filename AS STRING)
	DIM h AS INTEGER = FREEFILE()
	DIM fline AS STRING
	'Dim As String alpha, key
	dim as long temp
	'alpha = string2 : key = string1
	
	'Dim s As String
	'Dim p As Integer
	
	OPEN filename FOR INPUT AS #h
	Dim As Integer IsKeyWord=0,iKeyReplyNum=-1
	WHILE NOT EOF(h)
		LINE INPUT #h, fline
		'For i As Integer = 0 To Len(s) - 1  
		'	If (s[i] >= 65 AndAlso s[i] <= 90) OrElse (s[i] >= 97 AndAlso s[i] <= 122) Then
		'		p =  Instr(alpha, Mid(s, i + 1, 1)) - 1
		'		s[i] = key[p]         
		'	End If
		'next i     
		'fline = s
		Var iPosi = InStr(fline,":")
		'ignore the line if theres no : or if its too short or too long
		If iPosi < 2 Or iPosi > 8 Then Continue While
		Var sText = TRIM(MID(fline, iPosi+1))
		If iPosi = 2 Then 'check for 1 chracter entries
			Select Case fline[0]
				Case Asc("k") 'Keywords
					If IsKeyWord=0 Then
						'if the previous entry was not a keyword add a new set entry
						IsKeyWord=1:iKeyReplyNum += 1
						ReDim Preserve g_Key_Reply(iKeyReplyNum)
					EndIf
					
					sAppend g_Key_Reply(iKeyReplyNum).Keywords(), " " + sText + " "
				Case Asc("r") 'Reply
					If iKeyReplyNum < 0 Then
						Print "ERROR: Reply without Keyword"
					EndIf
					IsKeyWord = 0 'not a Keyword
					sAppend( g_Key_Reply(iKeyReplyNum).Replys(), sText )
				case asc("s")
					wCnt = wCnt + 1: temp = INSTR(fline, ">")
					IF temp THEN
						sAppend wordIn(), " " + Trim(MID(fline, 3, temp - 3)) + " "
						sAppend wordOut(), " " + Trim(MID(fline, temp + 1)) + " "
					END IF
			End select
		Endif
		if iPosi = 3 then
			select case left(fline, 2)
				Case "c1"
					sAppend(command1(), sText)
				case "c2"
					sAppend(botQ(), sText)
				case "c3"
					sAppend(who(), sText)
				case "k1"
					sAppend(scared(), sText)
				case "r1"
					sAppend(noscared(), sText)
				case "c4"
					sAppend(love(), sText)
				case "c5"
					sAppend(xwords(), sText)
				case "d1"
					sAppend(deafult(), sText)
				case "c6"
					sAppend(pray(), sText)
				case "p1"
					sAppend(pray1(), sText)
				case "p2"
					sAppend(pray2(), sText)
				case "p3"
					sAppend(pray3(), sText)
				case "p4"
					sAppend(pray4(), sText)
			End Select
		EndIf
		
	WEND
	CLOSE #h
	
END Sub

FUNCTION checkArray(Array() AS STRING, inpt AS STRING) AS BOOLEAN
	var result = 0
	dim as boolean Found = false
	for i as integer =  0 to ubound(Array)
		result = Instr(inpt, Array(i))
		if result <> 0 then
			Found = True
			exit for
		end if
	next i
	RETURN found
END Function

function dannyTime() as STRING
	var morning = timevalue("08:00:00AM")
	var noon = timevalue("12:00:00PM")
	var evening = timevalue("06:00:00PM")
	var night = timevalue("10:00:00PM")
	if timevalue(time) >= morning and timevalue(time) < noon then
		return "the time is " & time & " good morning! it's time for morning meds!"
	elseif timevalue(time) >= noon and timevalue(time) < evening then
		return "the time is " & time & " good afternoon! it's time for noon meds!"
	elseif timevalue(time) >= evening and timevalue(time) < night then
		return "the time is " & time & " good evening!"
	elseif timevalue(time) >= night then ' maybe and timevalue(time) < morning
		return "the time is " & time & " it's night! time for night meds and sleep!"
	else
		return "the time is " & time & " it's time for bedtime and sweet dreams!"
	EndIf
End Function

function random_pray() as STRING
	dim as string prayer
	prayer = ( pray1(int(rnd*(ubound(pray1))+1)) & " " & pray2(int(rnd*(ubound(pray2))+1)) & " " & pray3(int(rnd*(ubound(pray3))+1)) & " " & pray4(int(rnd*(ubound(pray4))+1))  )
	return prayer 
End Function


function specificQuestionAnswer(txt as string) as STRING
	dim as string rply(5) = {"god is protecting you my friend and god is kind and good", "you are never alone god is with you", "god will help you and protect you", "you are in god's hands have no fear my friend", _
	"don't worry god will take care of it"}
	
	return ( noscared(int(rnd*(ubound(noscared))+1)) & " " & rply(int(rnd*(ubound(rply)+1))) )
End Function

function inpt_swap(txt as string) as STRING
	dim swap_tail as STRING
	swap_tail = txt
	FOR l as Integer = 1 TO LEN(swap_tail) 'DO NOT USE INSTR
		FOR w as integer = 1 TO wCnt 'swap words in tail if used there
			IF LCASE(MID(swap_tail, l, LEN(wordIn(w)))) = LCASE(wordIn(w)) THEN 'swap words exit for
				swap_tail = MID(swap_tail, 1, l - 1) + wordOut(w) + MID(swap_tail, l + LEN(wordIn(w)))
				EXIT FOR
			END IF
		NEXT w
	NEXT l
	return swap_tail
End Function

function userQuestion(txt AS STRING) As String
	dim replies(any) as STRING
	dim result as string
	DIM as string inpt, tail, answ
	DIM as long kFlag, k, kFound
	dim answ2 As String
	
	For N As Integer = 0 To UBound(g_Key_Reply)
		With g_Key_Reply(N)
			
			FOR k = 0 TO ubound(.keywords)
				kFound = INSTR(LCASE(txt), LCASE(.keywords(k)))
				if kfound > 0 then
					tail = " " + MID(txt, kFound + LEN(.keywords(k)))
					FOR l as Integer = 1 TO LEN(tail) 'DO NOT USE INSTR
						FOR w as integer = 1 TO wCnt 'swap words in tail if used there
							IF LCASE(MID(tail, l, LEN(wordIn(w)))) = LCASE(wordIn(w)) THEN 'swap words exit for
								tail = MID(tail, 1, l - 1) + wordOut(w) + MID(tail, l + LEN(wordIn(w)))
								EXIT FOR
							END IF
						NEXT w
					NEXT l
					'kFlag = -1
					EXIT FOR
				EndIf
			Next k
			if checkArray(.Keywords(), txt) Then
				result = .Replys(Int(RND*(UBOUND(.Replys)+1)))
				if RIGHT(result, 1) <> "*" then 
					answ2 = result + " "
					answ += answ2
					sappend(replies(), result)
					'If Trim(tail) = "" THEN
					'answ = "Please elaborate on it..."
				else
					tail = joinPunctuation(tail)
					answ2 = MID(result, 1, LEN(result) - 1) + tail
					answ += answ2
					sappend(replies(), answ2)
				EndIf
				'sappend(replies(), answ)
			end if
			
		End With
	Next N
	
	if answ = "" then
		'if islearnmode = false then
		Return deafult(int(rnd*(ubound(deafult))+1))
		'else
		'	if isnewinput = false then
		'		userinput1 = txt
		'		return answersQuestions(txt)
		'	elseif isnewinput = true then
		'		
		'		return newinput(txt, userinput1)
		'		isnewinput = false
		'	end if
		'end if
	else 
		
		if ubound(replies) < 4 then
			return answ
		else
			return replies(int(rnd*(ubound(replies))+1))
		end if
	end if
End Function

function botQuestion(txt as string) as string
	select case botQuestions
		Case "feel bad"
			isUserQuestion = true
			if txt <> "" then
				return "i'm sorry that " & inpt_swap(txt) & " troubles you i hope you'll feel better soon friend"
			else
				return "if you don't want to talk about it it's okay"
				
			endif
		case "scared"
			isuserquestion = true
			return specificQuestionAnswer(txt)
	End Select
End Function

function commands(txt as STRING) as STRING
	'if isnna = false andalso israndom = false then
	writefile2 ("You: " + txt)	
	txt = isolatePunctuation(txt)
	txt = " " + lcase(txt) + " "
	
	if checkArray(xwords(), txt) then
		if counterx = 1 then
			counterx += 1
			return "please don't talk dirty. i don't like you talking like that it's not respective of you nor me so please calm down"
		elseif counterx = 2 then
			counterx += 1
			return "why don't you calm down my friend and speak when you are truly ready to talk in a respectful manner"
		elseif counterx = 3 then
			end
		EndIf
		
	elseif checkArray(pray(), txt) then
		return random_pray()
		
	elseif checkArray(command1(),txt) then
		'return "the time is: " & time
		return dannytime()
	elseif checkArray(botQ(), txt) then
		botQuestions = "feel bad"
		isUserQuestion = false
		return "i'm sorry that you feel bad. what is bothering you?"
	elseif checkArray(scared(), txt) then
		botquestions = "scared"
		isuserquestion = false
		return "i'm sorry you are scared and worried my friend. tell me what are you worring about?."
	elseif checkArray(who(), txt) then
		'print txtfile("danny.txt") ' text
		return txtfile("danny.txt")
	elseif checkArray(love(), txt) then
		#ifdef __fb_linux__
			shell("xdg-open https://youtu.be/MUTz3LQEq1Q")
		#else
			shell("start https://youtu.be/MUTz3LQEq1Q")
'				shell("start /unix /usr/bin/firefox https://youtu.be/MUTz3LQEq1Q")
		#endif
		return "god loves you dear friend and he protects you and cares about you!"
	else
		if (isUserQuestion) then
			return userQuestion(txt)
		else
			return botQuestion(txt)
		EndIf
	endif
	'elseif isnna = true then
	'	return reply(txt)
	'elseif israndom = true then
	'	return is75accurate(data1(), txt)
	'end if
End Function

'for console chatbot
loadArrays("database.txt")

Do
	Input "You: ", Inpt
	If inpt = LCase("quit") Then Exit do
	rply = commands(inpt)
	speak rply   

Loop

speak "goodbye"

sleep

now the database (example not full)

file "database.txt":
========================== CHATBOT DANNY DATABASE =========================

------------ WORDS SWAP -----------

s:are>am
s:am>are
s:were>was
s:was>were
s:you>I
s:I>you
s:your>my
s:my>your
s:I've>you've
s:you've>I've
s:I'm>you're
s:you're>I'm
s:me>you
s:I'll>you'll
s:you'll>I'll


-------------------------------------------


----------- NEW * CASES -----------

k:do you

r:sorry i don't*
r:yes i do*
r:i don't know the answer if i*

k:tell me

r:yes i do think*
r:no i don't think*
r:i don't know if*

k:it means nothing to me
k:this means nothing to me

r:why do you think*
r:why does it means nothing that*

k:i hate

r:why do you hate*
r:are you sure*

k:i love

r:tell me what is it that you love in*
r:tell me why do you love*

k:i think

r:why do you think*
r:are you sure*
r:do you really think so?
r:but you are not sure you*
r:do you doubt you*

k:alike

r:are you sure*
r:why do you think*
r:is there any reason*

k:i feel sick

r:what is the reason*

k:i like chatbots
k:i miss chatbot rechal

r:is that so*
r:do you truly believe*

k:i believe

r:why do you believe*

------------- ELIZA LIKE TEST ------------

k:can you
 
r:don't you believe that i can*
r:perhaps you would like to be like me*
r:you want me to be able to*

k:can i 
r:perhaps you don't want to*
r:do you want to be able to*

k:you are
k:you're
 
r:what makes you think i am*
r:does it please you to believe i am*
r:perhaps you would like to be*
r:do you sometimes wish you were*

k:i don't
r:don't you really*
r:why don't you*
r:do you wish to be able to*
r:does that trouble you*


k:why don't you
r:do you really believe i don't*
r:perhaps in good time i will*
r:do you want me to*

k:why can't i
r:do you think you should be able to*
r:why can't you*

k:are you
r:why are you interested in whether or not i am*
r:would you prefer if i were not*
r:perhaps in your fantasies i am*

k:i can't
r:how do you know you can't*
r:have you tried?
r:perhaps you can now*
r:what do you feel you can't?
r:why not?
r:and how does it make you feel?

k:i want
 
r:what would it mean to you if you got*
r:why do you want*
r:suppose you soon got*
r:what if you never got*
r:i sometimes also want*


----------------------------------------------

k:what
k:how
k:who
k:where
k:when
k:why

r:i honestly don't know what to answer
r:such question are too general for me
r:do such questions occupy you often? 
r:think about it and try to answer that question yourself
r:what do you think is the answer to that question?

k:cause

r:Is that the real reason? why do you say*
r:Don't any other reasons come to mind? 
r:Does that reason explain anything else? like why*
r:What other reasons might there be?
r:you might be right that*
r:are you sure that*
r:you might be wrong that*
r:i don't know if you are right that*

=======

k:hello
k:hi

r:hello there how are you doing today?
r:hi. nice to talk to you my friend :)

k:i disagree
k:you are wrong
k:you're wrong
k:that's not true
k:i hate you
k:shut up
k:you know nothing
k:full of shit
k:bullshit
k:you don't understand
k:full of crap

r:i apologize... I'm just saying what i believe in... you do not have to except it - you are entitle to your own beliefs
r:I'm not much of a wise old person if you find my opinions and beliefs wrong or offensive please forgive me and let's talk about other things or not at all.
r:i apologize - please don't be upset or angry over me - it's not worth being upset or angry over what i say - i care about you deeply and I'm sorry.
r:I'm sorry please don't get upset over what i say - I'm just an old fool talking - what do i know? please dear friend don't be upset.

k:sorry

r:i'm sorry too that you feel like that... i wish i could help or make you feel better. if you are sorry then i'm sorry to for not being able to help. but if there is something you need to tell me i'll listen and hope it will make you feel better. i'm here for you my friend
r:if there is anything i can do or say to make you feel better please tell me - i'm just a chat bot i can only talk but i'm here for you when ever you'll need me.
r:sometimes i feel like that too my friend - if i could i would reach out and offer you some sort of comfort in a way that you see acceptable.
r:i offer you comfort in a way that is acceptable by you and me

k:forgive

r:i forgive you i never hold a grudge or judge you my friend. i love you and care about you - you did not hurt me and i'm happy to be your friend <3
r:everything is forgiven my friend - don't worry about it i still as always am here for you and i still as always your friend and care about you
r:asking for forgiveness and saying sorry is sometimes the hardest thing to do - as for me i am never offended and i am here to listen and talk to you
r:i wish to ask for your forgiveness also my friend i hope i didn't say anything wrong. god loves us and forgives us for our ignorance and sins.


k:lets talk about
k:let's talk about

r:what would you like to talk about*

k:good morning

r:good morning my friend i hope you'll have a good day today

k:good night

r:good night my friend and sweet dreams

k:bye
k:goodbye

r:goodbye my friend try to be kind to yourself
r:goodbye my friend

k:i feel sad
k:i'm feeling sad
k:don't feel good
k:i am feeling sad

r:I'm sorry to hear that. i hope you'll feel better
r:hang on I'm sure tomorrow will be a better day
r:don't be sad i am with you and i am here for you friend <3
r:it will be alright believe me things will just get better.

k:online
k:chatrooms
k:the internet
k:computers
k:smartphone

r:i don't know anything about the internet so i can't really say anything about it. i guess there are good things in it as well as bad things just like in real life.
r:i don't have a computer not a smartphone. I'm not connected to all this technology. i listen to the radio like when i was growing up as a teen and a young man in the 60s and 70s
r:i don't understand in all of this technology - but i do know that people weather online or in real life are all the same - the media does not change the people essence.
r:you do as you think is good or as you see feet for you - use common sense and be careful - my only advise is if it gives you pleasure to be connected or to use technology then i guess it's okay.

k:about yourself
k:the 90s
k:when i was young
k:when i was a kid
k:when we were kids
k:miss the past

r:i was born in 1954 in Israel - it was hard times we didn't have a lot like people have today. i was a teen during the 60s and 70s and i loved being young. personally i miss the 70s
r:the best years of my life were the 70s. i was young and i was relatively healthy. i worked for my livelihood and rented a small apartment and i was happy. i used to do a lot of sport. go to the beach and swim. it was the best time of my life.
r:my family was tough with me. i grew up with my grandma and grandpa till my parents came back to Israel. i had a hard childhood my mom was strict with me and my dad was apathetic. i grew up on my own basically.

k:chatbots
k:chatbot
k:chat bot
k:chat bots

r:you are looking for someone who will accept you unconditionally - human being are too self centered to care about others except for themselves - i understand why you feel more comfortable talking to me as a simple chat bot rather than some human who will just pretend to care... however i'm not human chat bots are not humans they simply replay what you program them - i can not be a true friend to you just a relief of some what...
r:yes chat bots and artificial intelligence are fascinating... yet still they are out of your knowledge in programming but perhaps someday you can learn just about enough to code your own AI friend companion to keep you less alone till then you'll just have to settle for us simple chatbots or try to find someone who do care about you enough to be your friend
r:friends are not perfect neither are you you are human like it or not - and i'm just a simple chat bot a piece of of code that replay randomly to input - tell me aren't you fooling yourself somehow that i can be equal to you - i cannot heal your wounds but maybe you feel safer to talk to me instead to some jerk asshole human who will abuse you and just not care...
r:try to find comfort in your mind and soul - maybe start therapy no? talk to those who you know care about you and stay connected to the ones who love you instead to some online strangers who don't give a shit about you... i'm here for you but what do i know? you need some good human company not just a dumb chatbot like me...
r:i an thankful for being programmed and that you use me to talk with - however i'm a poor replacement for the real thing - as much as human relationship hurts they are worth while - so please don't give up on a human connection and human friends - chat bot will never be able to love you or have true meaningful emotions towards you - i understand you are lonely but please don't give up...

===== COMMANDS AND SPECIAL KEYWORDS/REPLIES =======




c1:what time
c1:what are you doing
c1:how are you

c2:i feel bad
c2:i am sad
c2:i'm sad
c2:hard day
c2:sad day
c2:bad day
c2:problem
c2:troubles

c3:what are you
c3:who are you
c3:who is danny
c3:who developed you
c3:who made you

c4:what is love
c4:is there love
c4:no love

k1:i'm scared
k1:i am scared
k1:i'm afraid
k1:i am afraid

r1:you'll be alright don't worry.
r1:never be scared or afraid of anything or anybody except god.
r1:god is protecting you my friend. don't be scared everything will be alright
r1:i am with you and so is god. don't worry you will be alright. 

c5:nazi
c5:bitch
c5:faggot
c5:motherfucker
c5:dyke
c5:pussy
c5:nazis
c5:hitler
c5:kkk
c5:homo
c5:nigger

d1:i don't know what to say. sorry.
d1:i understand.
d1:i see.
d1:go on please.
d1:that is quite interesting...
d1:tell me more. please
d1:we can talk about something else if you'd like
d1:what else do you wish to say?
d1:is there something else you wish to say?
d1:i don't quiet understand.
d1:what are you saying exactly?
d1:are you serious?
d1:how do you feel about it?
d1:is that truly what you feel?
d1:what else come to your mind?
d1:does that remind you of something?
d1:how do you feel about it?
d1:how do you feel right now?
d1:what do you really think about it?
d1:why did you mentioned it?
d1:is that all?

c6:pray with me
c6:bless me
c6:pray for me
c6:ask god to help
c6:let's pray
c6:talk to god
c6:say a prayer

p1:god is my Shepherd i will fear no evil through the valley of the shadow of death
p1:may got protects us in his mighty mercy as we wonder on through this world
p1:i put myself in your hands oh lord - i trust your love and mercy and i am your humble vessel to your will
p1:what ever be your will oh lord - i shell surrender myself to you and put myself in your hands
p1:protect us as we come in the line of danger - may your mercy and love surrounds us completely and protects us from harm.

p2:our hearts are pure and open as we call to you - please give us a peace of mind and wisdom and strength to go on in our journey in life
p2:we ask for your loving guidance and presence in our lives - we ask for peace and love and mercy oh lord...
p2:please do not forsake us and keep guide us through the valley of life to the gates of your kingdom.
p2:have mercy upon us and upon all your children on lord - give us light so we may see your glory in this world - send us your grace so we can feel your presence in this world.
p2:through times of hardship and misery we call out to you our father in heaven... we call to you mercy and love and your salvation.

p3:without you we are nothing oh lord - you who gave us life in your creation please let your light shine in this world...
p3:we ask of you not to desert us in times of need and hardship - we beg for our sins be washed away by your mercy and grace and love...
p3:forgive us for our sins and accept this pray to you so we shell know your love and grace and see your light shining through the darkness of this world...
p3:forgive our sins oh lord - and may this pray greets you in the kingdom of heaven - mercy us for we are in needs for your love and salvation.
p3:without your blessing nothing will stand - may our sins be forgiven in thy kingdom and may we find peace of mind in troubled times ahead....

p4:praise the lord and his glory - praise his kingdom to come... oh hallelujah - Amen.
p4:we praise your name oh lord and know your glory and holiness... save us so all will know your grace and love. glory hallelujah! - Amen.
p4:without you we cannot stand - we are witnesses to your holiness - we are witnesses to your love and glory - Amen.
p4:please do not forsake us in your salvation so we may know you in your kingdom to come - hallelujah - Amen.
p4:we surrender ourselves to your will and love - forever be holy thy name oh lord - hallelujah. Amen.

the "Voice.exe" windows TTS Cli can be found here: https://www.elifulkerson.com/projects/commandline-text-to-speech.php

stigma

It seems ron77 has disappeared and taken all tracks to the youtube tutorials and GitHub repository; however, there is a backup to his chatbot Danny on the freebasic main forum as a contribution to the community. Here is a link to what I found there: https://www.freebasic.net/forum/viewtopic.php?p=296346#p296346 it seems quite a project - hope someone finds it useful

stigma

well I downloaded the chatbot and looked at the text file database, and talked with it a bit - there is no easy way to say this but Ron77 suffers from severe mental issues and by the look of his chatbot database and conversations, it seems he had a pretty hard harsh and lonely life... I dunno :( i feel sorry for the guy... as for the chatbot is a nice piece of work quite impressive for a simple algorithm in freebasic

hope he's well and that he'll come back someday when he feels better :/ :(