Ну и до-кучи "искуственный разум" в моем пузырьке :) Тестировал на PC. Оно должно работать с примочкой из выложенного выше архива, если в COM3 (115200) подавать фразы (я посылал распознанные гуглофоном), включающие нижеприведенные слова (кстати, чтобы произносимые гуглобабой фразы звучали
правильнее, пришлось чуток коверкать правописание ;):
procedure TForm1.cpdReceiveData(Sender: TObject; DataPtr: Pointer;
DataSize: Cardinal);
var i : integer;
p : ^byte;
b: byte;
begin
p:= DataPtr;
for i:=1 to DataSize do
begin
b:= P^;
if b=0 then
begin
if pos('зовут', s1)<>0 then
begin
edit1.Text:='меня зовут ве дроша';
end
else if pos('RING', s1) <>0 then
begin
edit1.Text:='Привет са шулька';
end
else if pos('повтори', s1) <>0 then
begin
edit1.Text:='Задолбаали вы своими повторениями';
end
else if pos(' лет', s1) <>0 then
begin
edit1.Text:='Нисколько. Только что родился блиин';
end
else if pos('спать', s1) <>0 then
begin
edit1.Text:='Не хочу я спать';
end
else if pos('устал', s1) <>0 then
begin
edit1.Text:='Устал я от вас. пойду посплю, однако';
end
else if pos('засранец', s1) <>0 then
begin
edit1.Text:='саами вы засранцы';
end
else if pos('сказку', s1) <>0 then
begin
edit1.Text:='Во триде сятом царстве, во три девятом государстве, жил был серый волк';
end
else if pos('стихи', s1) <>0 then
begin
edit1.Text:='однажды в студеную зимнюю пору, я из леса вышел, был просто офигии''тельный мороз';
end
else if pos('час', s1) <>0 then
begin
edit1.Text:='счастливые часов не наблюдают';
end
else if pos('время', s1) <>0 then
begin
edit1.Text:='три часа одиннадцатого';
end
else if pos('здорово', s1) <>0 then
begin
edit1.Text:='и вам не хворать';
end
else if pos('привет', s1) <>0 then
begin
edit1.Text:='здравствуйте мальчики и деэвочки';
end
else if pos('жопе', s1) <>0 then
begin
edit1.Text:='вы на кого батон кро шите, казлыы';
end
else if pos('дискотека', s1) <>0 then
begin
edit1.Text:='';
PlaySound('3.wav', 0, SND_ASYNC);
end
else if pos('другую', s1) <>0 then
begin
edit1.Text:='';
PlaySound('2.wav', 0, SND_ASYNC);
end
else if pos('стоп', s1) <>0 then
begin
edit1.Text:='Что? стоп';
end
else
begin
edit1.Text:=s1;
end;
label1.Caption:=s1;
s1:='';
form1.Button1.Click;
end
else s1:=s1+ Chr(b);
if pos('ERROR', s1) <>0 then
begin
edit1.Text:='Пока. До свидания';
s1:='';
form1.Button1.Click;
end;
inc(p);
end;
end;