Code:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, SpeechLib_TLB, OleServer, StdCtrls;
type
TForm1 = class(TForm)
SpSharedRecoContext1: TSpSharedRecoContext;
Button1: TButton;
Button2: TButton;
procedure SpSharedRecoContext1Hypothesis(ASender: TObject;
StreamNumber: Integer; StreamPosition: OleVariant;
const Result: ISpeechRecoResult);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure CreateGrammar;
procedure AddWord(word: String);
end;
var
Form1: TForm1;
SRGrammar: ISpeechRecoGrammar;
Rule: ISpeechGrammarRule;
WordNumber: Integer;
// Create this object and fill it with the words
// or phrases you want to recognise before calling CreateGrammar
Phrases: TStringList;
implementation
{$R *.dfm}
procedure TForm1.SpSharedRecoContext1Hypothesis(ASender: TObject;
StreamNumber: Integer; StreamPosition: OleVariant;
const Result: ISpeechRecoResult);
var text: String; confidence: Integer;
begin
text:=Result.PhraseInfo.GetText(0,-1,True);
Confidence:=Integer(Result.PhraseInfo.Rule.Confidence);
showmessage(text);
end;
procedure TForm1.AddWord(word: String);
Var Value: OleVariant;
begin
Inc(WordNumber);
Value:=WordNumber;
Rule.InitialState.AddWordTransition(Nil, word, ' ', SPWT_LEXICAL, 'value',1,value,1.0);
end;
procedure TForm1.CreateGrammar;
var
i : integer;
begin
//OnAudioLevel event is not fired by default - this changes that
SpSharedRecoContext1.EventInterests := SREAllEvents;
SRGrammar := SpSharedRecoContext1.CreateGrammar(0);
Rule:=SRGrammar.Rules.Add('word',SRATopLevel+SRADefaultToActive,0);
WordNumber:=0;
for i := 0 to Phrases.Count-1 do begin
AddWord(Phrases[i]);
end;
//Rule:=Nil;
SRGrammar.Rules.Commit;
SRGrammar.CmdSetRuleIdState(0, SGDSActive);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
//addword('test');
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Phrases := TStringList.Create;
Phrases.Add('testing');
Phrases.Add('hi');
CreateGrammar;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
//addword('hi');
end;
end.

Sweet! That works now 
Now I just have to figure out how to suit it for my needs 
Thanks ric355!
Bookmarks