亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? commandandcontrolu.pas

?? softonline.dll中函數的使用,請見不同的例程,VB函數見VB例子,VC函數見VC例子,VFP函數見VFP的例子,BCB函數見BCB例子, Delphi函數見Delphi例子
?? PAS
字號:
unit CommandAndControlU;

//Uses SAPI 5.1 early bound Automation

interface

uses
  ActiveX,
{$ifdef CONDITIONALEXPRESSIONS}
  Variants,
{$endif}
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, OleServer, SpeechLib_TLB;

type
  TfrmCommandAndControl = class(TForm)
    lstProgress: TListBox;
    GroupBox1: TGroupBox;
    ProgressBar: TProgressBar;
    lblMinVU: TLabel;
    lblMaxVU: TLabel;
    lblVU: TLabel;
    Label3: TLabel;
    SpSharedRecoContext: TSpSharedRecoContext;
    btnEngineProps: TButton;
    btnUserSettings: TButton;
    btnLexicon: TButton;
    btnTrainGeneral: TButton;
    btnTrainMic: TButton;
    btnAudioProps: TButton;
    btnAudioVol: TButton;
    procedure FormCreate(Sender: TObject);
    procedure SpSharedRecoContextAudioLevel(Sender: TObject;
      StreamNumber: Integer; StreamPosition: OleVariant;
      AudioLevel: Integer);
    procedure SpSharedRecoContextFalseRecognition(ASender: TObject;
      StreamNumber: Integer; StreamPosition: OleVariant;
      const Result: ISpeechRecoResult);
    procedure SpSharedRecoContextHypothesis(ASender: TObject;
      StreamNumber: Integer; StreamPosition: OleVariant;
      const Result: ISpeechRecoResult);
    procedure SpSharedRecoContextInterference(Sender: TObject;
      StreamNumber: Integer; StreamPosition: OleVariant;
      Interference: TOleEnum);
    procedure SpSharedRecoContextPhraseStart(Sender: TObject;
      StreamNumber: Integer; StreamPosition: OleVariant);
    procedure SpSharedRecoContextRecognition(ASender: TObject;
      StreamNumber: Integer; StreamPosition: OleVariant;
      RecognitionType: TOleEnum; const Result: ISpeechRecoResult);
    procedure SpSharedRecoContextRecognitionForOtherContext(
      Sender: TObject; StreamNumber: Integer; StreamPosition: OleVariant);
    procedure SpSharedRecoContextRequestUI(ASender: TObject;
      StreamNumber: Integer; StreamPosition: OleVariant;
      const UIType: WideString);
    procedure SpSharedRecoContextSoundStart(Sender: TObject;
      StreamNumber: Integer; StreamPosition: OleVariant);
    procedure SpSharedRecoContextSoundEnd(Sender: TObject;
      StreamNumber: Integer; StreamPosition: OleVariant);
    procedure SpSharedRecoContextStartStream(Sender: TObject;
      StreamNumber: Integer; StreamPosition: OleVariant);
    procedure SpSharedRecoContextEndStream(Sender: TObject;
      StreamNumber: Integer; StreamPosition: OleVariant;
      StreamReleased: WordBool);
    procedure btnEnginePropsClick(Sender: TObject);
    procedure btnUserSettingsClick(Sender: TObject);
    procedure btnLexiconClick(Sender: TObject);
    procedure btnTrainGeneralClick(Sender: TObject);
    procedure btnTrainMicClick(Sender: TObject);
    procedure btnAudioPropsClick(Sender: TObject);
    procedure btnAudioVolClick(Sender: TObject);
    procedure SpSharedRecoContextAdaptation(Sender: TObject;
      StreamNumber: Integer; StreamPosition: OleVariant);
    procedure SpSharedRecoContextBookmark(Sender: TObject;
      StreamNumber: Integer; StreamPosition, BookmarkId: OleVariant;
      Options: TOleEnum);
    procedure SpSharedRecoContextEnginePrivate(Sender: TObject;
      StreamNumber: Integer; StreamPosition, EngineData: OleVariant);
    procedure SpSharedRecoContextPropertyNumberChange(ASender: TObject;
      StreamNumber: Integer; StreamPosition: OleVariant;
      const PropertyName: WideString; NewNumberValue: Integer);
    procedure SpSharedRecoContextPropertyStringChange(ASender: TObject;
      StreamNumber: Integer; StreamPosition: OleVariant;
      const PropertyName: WideString; const NewStringValue: WideString);
    procedure SpSharedRecoContextRecognizerStateChange(Sender: TObject;
      StreamNumber: Integer; StreamPosition: OleVariant;
      NewState: TOleEnum);
  private
    SRGrammar: ISpeechRecoGrammar;
    procedure InvokeUI(const TypeOfUI, Caption: WideString);
  public
    procedure Log(const Msg: String); overload;
    procedure Log(const Msg: String; const Args: array of const); overload;
  end;

var
  frmCommandAndControl: TfrmCommandAndControl;

implementation

{$R *.dfm}

uses
  SAPI, ComObj;

{ TfrmVoiceDictationAPI }

procedure TfrmCommandAndControl.Log(const Msg: String);
begin
  if not Assigned(lstProgress) then
    Exit;
  lstProgress.Items.Add(Msg);
  lstProgress.ItemIndex := lstProgress.Items.Count - 1
end;

procedure TfrmCommandAndControl.Log(const Msg: String; const Args: array of const);
begin
  Log(Format(Msg, Args))
end;

procedure TfrmCommandAndControl.FormCreate(Sender: TObject);
begin
  //OnAudioLevel event is not fired by default - this changes that
  SpSharedRecoContext.EventInterests := SREAllEvents;
  SRGrammar := SpSharedRecoContext.CreateGrammar(0);
  SRGrammar.CmdLoadFromFile('C and C Grammar.xml', SLODynamic);
  SRGrammar.CmdSetRuleIdState(0, SGDSActive)
end;

procedure TfrmCommandAndControl.SpSharedRecoContextAudioLevel(
  Sender: TObject; StreamNumber: Integer; StreamPosition: OleVariant;
  AudioLevel: Integer);
begin
  ProgressBar.Position := AudioLevel;
  lblVU.Caption := IntToStr(AudioLevel)
end;

procedure TfrmCommandAndControl.SpSharedRecoContextFalseRecognition(
  ASender: TObject; StreamNumber: Integer; StreamPosition: OleVariant;
  const Result: ISpeechRecoResult);
begin
  Log('OnFalseRecognition: %s, SAPI confidence: %s, engine confidence: %s',
    [Result.PhraseInfo.GetText(0, -1, True),
     Result.PhraseInfo.Rule.Confidence,
     Result.PhraseInfo.Rule.EngineConfidence])
end;

procedure TfrmCommandAndControl.SpSharedRecoContextHypothesis(
  ASender: TObject; StreamNumber: Integer; StreamPosition: OleVariant;
  const Result: ISpeechRecoResult);
begin
  Log('OnHypothesis: %s', [Result.PhraseInfo.GetText(0, -1, True)]);
end;

procedure TfrmCommandAndControl.SpSharedRecoContextInterference(
  Sender: TObject; StreamNumber: Integer; StreamPosition: OleVariant;
  Interference: TOleEnum);
var
  S: String;
begin
  case Interference of
    SINone:     S := 'none';
    SINoise:    S := 'noise';
    SINoSignal: S := 'no signal';
    SITooLoud:  S := 'too loud for discrete recognition';
    SITooQuiet: S := 'too quiet for discrete recognition';
    SITooFast:  S := 'too fast for discrete recognition';
    SITooSlow:  S := 'too slow';
  end;
  Log('OnInterference: %s', [S])
end;

procedure TfrmCommandAndControl.SpSharedRecoContextPhraseStart(
  Sender: TObject; StreamNumber: Integer; StreamPosition: OleVariant);
begin
  Log('OnPhraseStart');
end;

function GetProp(Props: ISpeechPhraseProperties;
  const Name: String): ISpeechPhraseProperty; overload;
var
  I: Integer;
  Prop: ISpeechPhraseProperty;
begin
  Result := nil;
  for I := 0 to Props.Count - 1 do
  begin
    Prop := Props.Item(I);
    if CompareText(Prop.Name, Name) = 0 then
    begin
      Result := Prop;
      Break
    end
  end
end;

function GetPropValue(SRResult: ISpeechRecoResult;
  const Path: array of String): OleVariant;
var
  Prop: ISpeechPhraseProperty;
  PathLoop: Integer;
begin
  for PathLoop := Low(Path) to High(Path) do
  begin
    if PathLoop = Low(Path) then //top level property
      Prop := GetProp(SRResult.PhraseInfo.Properties, Path[PathLoop])
    else //nested property
      Prop := GetProp(Prop.Children, Path[PathLoop]);
    if not Assigned(Prop) then
    begin
      Result := Unassigned;
      Exit;
    end
  end;
  Result := Prop.Value
end;

procedure TfrmCommandAndControl.SpSharedRecoContextRecognition(
  ASender: TObject; StreamNumber: Integer; StreamPosition: OleVariant;
  RecognitionType: TOleEnum; const Result: ISpeechRecoResult);
begin
  with Result.PhraseInfo do
  begin
    Log('OnRecognition: %s', [GetText(0, -1, True)]);
    case GetPropValue(Result, ['chosencolour', 'colourvalue']) of
      1: Color := clRed;
      2: Color := clBlue;
      3: Color := clGreen;
    end
  end
end;

procedure TfrmCommandAndControl.SpSharedRecoContextRecognitionForOtherContext(
  Sender: TObject; StreamNumber: Integer; StreamPosition: OleVariant);
begin
  Log('OnRecognitionForOtherContext')
end;

procedure TfrmCommandAndControl.SpSharedRecoContextRequestUI(
  ASender: TObject; StreamNumber: Integer; StreamPosition: OleVariant;
  const UIType: WideString);
begin
  Log('OnRequestUI: %s', [UIType])
end;

procedure TfrmCommandAndControl.SpSharedRecoContextSoundStart(
  Sender: TObject; StreamNumber: Integer; StreamPosition: OleVariant);
begin
  Log('OnSoundStart')
end;

procedure TfrmCommandAndControl.SpSharedRecoContextSoundEnd(
  Sender: TObject; StreamNumber: Integer; StreamPosition: OleVariant);
begin
  Log('OnSoundEnd')
end;

procedure TfrmCommandAndControl.SpSharedRecoContextStartStream(
  Sender: TObject; StreamNumber: Integer; StreamPosition: OleVariant);
begin
  Log('OnStartStream: stream %d', [StreamNumber])
end;

procedure TfrmCommandAndControl.SpSharedRecoContextEndStream(
  Sender: TObject; StreamNumber: Integer; StreamPosition: OleVariant;
  StreamReleased: WordBool);
begin
  Log('OnEndStream: stream %d', [StreamNumber])
end;

procedure TfrmCommandAndControl.btnEnginePropsClick(Sender: TObject);
begin
  //Only available in SAPI 5.0; not in SAPI 5.1 or later
  InvokeUI(SPDUI_EngineProperties, 'Engine Properties')
end;

procedure TfrmCommandAndControl.btnUserSettingsClick(Sender: TObject);
begin
  InvokeUI(SPDUI_RecoProfileProperties, 'User Settings')
end;

procedure TfrmCommandAndControl.btnLexiconClick(Sender: TObject);
begin
  InvokeUI(SPDUI_AddRemoveWord, 'Add/Remove Word')
end;

procedure TfrmCommandAndControl.btnTrainGeneralClick(Sender: TObject);
begin
  InvokeUI(SPDUI_UserTraining, 'Speaker Training')
end;

procedure TfrmCommandAndControl.btnTrainMicClick(Sender: TObject);
begin
  InvokeUI(SPDUI_MicTraining, 'Microphone Setup')
end;

procedure TfrmCommandAndControl.btnAudioPropsClick(Sender: TObject);
begin
  InvokeUI(SPDUI_AudioProperties, 'Audio Properties')
end;

procedure TfrmCommandAndControl.btnAudioVolClick(Sender: TObject);
begin
  InvokeUI(SPDUI_AudioVolume, 'Audio Volume')
end;

procedure TfrmCommandAndControl.InvokeUI(const TypeOfUI, Caption: WideString);
var
  U: OleVariant;
begin
  U := Unassigned;
  if SpSharedRecoContext.Recognizer.IsUISupported(TypeOfUI, U) then
    SpSharedRecoContext.Recognizer.DisplayUI(Handle, Caption, TypeOfUI, U)
end;

procedure TfrmCommandAndControl.SpSharedRecoContextAdaptation(
  Sender: TObject; StreamNumber: Integer; StreamPosition: OleVariant);
begin
  Log('OnAdaptation')
end;

procedure TfrmCommandAndControl.SpSharedRecoContextBookmark(
  Sender: TObject; StreamNumber: Integer; StreamPosition,
  BookmarkId: OleVariant; Options: TOleEnum);
begin
  Log('OnBookmark: %d', [Integer(BookmarkId)])
end;

procedure TfrmCommandAndControl.SpSharedRecoContextEnginePrivate(
  Sender: TObject; StreamNumber: Integer; StreamPosition,
  EngineData: OleVariant);
begin
  Log('OnEnginePrivate')
end;

procedure TfrmCommandAndControl.SpSharedRecoContextPropertyNumberChange(
  ASender: TObject; StreamNumber: Integer; StreamPosition: OleVariant;
  const PropertyName: WideString; NewNumberValue: Integer);
begin
  Log('OnPropertyNumberChange: %s=%d', [PropertyName, NewNumberValue])
end;

procedure TfrmCommandAndControl.SpSharedRecoContextPropertyStringChange(
  ASender: TObject; StreamNumber: Integer; StreamPosition: OleVariant;
  const PropertyName: WideString; const NewStringValue: WideString);
begin
  Log('OnPropertyStringChange: %s=%s', [PropertyName, NewStringValue])
end;

procedure TfrmCommandAndControl.SpSharedRecoContextRecognizerStateChange(
  Sender: TObject; StreamNumber: Integer; StreamPosition: OleVariant;
  NewState: TOleEnum);
var
  S: String;
begin
  case NewState of
    SRSInactive:          S := 'inactive';
    SRSActive:            S := 'active';
    SRSActiveAlways:      S := 'active always';
    SRSInactiveWithPurge: S := 'inactive with purge';
  end;
  Log('OnRecognizerStateChange')
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三级| 在线免费视频一区二区| 欧美精品一区二区三区视频| 天天色图综合网| 精品福利视频一区二区三区| 久久国产精品99精品国产| 欧美不卡一区二区| 国产suv精品一区二区6| 最新日韩av在线| 欧美视频一区在线| 美女爽到高潮91| 久久精品这里都是精品| 国产69精品一区二区亚洲孕妇| 国产精品久久久久久久浪潮网站| 91免费看片在线观看| 亚洲成人在线观看视频| 日韩精品一区在线| 成人黄色av网站在线| 亚洲一区二区在线免费观看视频| 欧美日韩国产成人在线91| 国内不卡的二区三区中文字幕| 国产欧美精品一区aⅴ影院| www.性欧美| 午夜精品久久久久久久| 久久久久国产成人精品亚洲午夜| 成人a免费在线看| 午夜精品久久一牛影视| 日本一区二区免费在线| 欧美性猛交xxxx黑人交| 九九**精品视频免费播放| 成人欧美一区二区三区白人| 3atv一区二区三区| 成人美女视频在线观看| 日韩精品亚洲一区二区三区免费| 久久久国产一区二区三区四区小说| 91免费看片在线观看| 狠狠色丁香婷综合久久| 亚洲乱码日产精品bd| 日韩女优av电影| 欧美视频一区二区在线观看| 国产成人免费在线观看不卡| 午夜精品久久久久久久| 亚洲婷婷国产精品电影人久久| 日韩视频免费观看高清完整版在线观看 | 亚洲四区在线观看| 日韩一区二区三区免费观看| 91在线视频免费91| 国产一区 二区 三区一级| 亚洲一区二区三区精品在线| 欧美激情在线一区二区三区| 欧美一区二区三级| 欧美日韩成人综合| 91丨porny丨户外露出| 国产一区二区不卡| 蜜桃一区二区三区四区| 亚洲一二三区在线观看| 成人欧美一区二区三区| 欧美激情在线观看视频免费| 欧美成人精品3d动漫h| 欧美浪妇xxxx高跟鞋交| 欧美制服丝袜第一页| 99热在这里有精品免费| 国产aⅴ综合色| 精彩视频一区二区三区| 日韩电影在线观看电影| 天使萌一区二区三区免费观看| 亚洲天堂2014| 亚洲欧美日韩国产中文在线| 中文av一区特黄| 久久精品一二三| 久久一留热品黄| 精品国精品自拍自在线| 欧美v亚洲v综合ⅴ国产v| 日韩一级成人av| 日韩亚洲欧美在线观看| 欧美一区二区三区视频在线| 欧美久久久一区| 日韩欧美一区在线| 日韩视频免费观看高清完整版在线观看 | 国产精品水嫩水嫩| 国产精品全国免费观看高清| 国产日韩亚洲欧美综合| 国产女人18毛片水真多成人如厕| 久久久av毛片精品| 久久精品亚洲乱码伦伦中文| 国产日产欧美一区二区视频| 国产欧美在线观看一区| 国产精品毛片无遮挡高清| 国产精品久久久久久一区二区三区 | 久久综合九色综合97婷婷女人| 日韩免费看网站| 久久久久久久综合色一本| 国产精品午夜在线| 亚洲综合视频在线| 日韩精品乱码免费| 狠狠色丁香久久婷婷综| 成人免费视频一区二区| 91美女在线看| 欧美一区二区三区免费视频 | 蜜臀91精品一区二区三区| 激情综合色丁香一区二区| 国产成人自拍网| 一本一道综合狠狠老| 在线不卡欧美精品一区二区三区| 日韩一区二区在线播放| 亚洲国产精品高清| 洋洋成人永久网站入口| 美日韩一区二区| 高清beeg欧美| 欧美日韩一级片在线观看| 欧美精品一区二区三区在线 | 国产亚洲福利社区一区| 一区二区三区四区乱视频| 蜜臀久久99精品久久久画质超高清 | 国产精品一区二区在线观看网站 | 欧美高清在线一区| 午夜精品一区二区三区三上悠亚| 久久99深爱久久99精品| 97精品国产露脸对白| 8x福利精品第一导航| 国产欧美一区二区三区网站| 一区二区三区日韩欧美精品| 精品无码三级在线观看视频| 色久综合一二码| 久久久综合视频| 亚洲国产成人av网| 国产精一区二区三区| 欧美日韩精品一区二区三区四区 | 亚洲欧美日韩成人高清在线一区| 日产国产高清一区二区三区| av中文字幕在线不卡| 欧美成人一区二区| 亚洲综合色网站| 国产成人午夜99999| 日韩女优电影在线观看| 亚洲一区在线看| 成人免费va视频| 久久久综合视频| 另类小说视频一区二区| 91看片淫黄大片一级在线观看| 亚洲精品一区二区三区福利| 亚洲成av人片一区二区三区| 91一区在线观看| 日本一区二区三级电影在线观看 | 久久久精品tv| 精品影院一区二区久久久| 欧美最猛性xxxxx直播| 欧美激情在线免费观看| 国产精一区二区三区| 欧美mv和日韩mv的网站| 日韩精品91亚洲二区在线观看| 色婷婷久久久久swag精品| 欧美韩日一区二区三区四区| 久久国产免费看| 欧美mv日韩mv国产| 裸体在线国模精品偷拍| 4438亚洲最大| 天堂va蜜桃一区二区三区漫画版| 欧美在线观看一二区| 亚洲精品乱码久久久久久久久| 不卡影院免费观看| 国产无一区二区| 国产精品小仙女| 国产丝袜欧美中文另类| 国产精一品亚洲二区在线视频| 日韩精品一区二区三区四区 | 一区av在线播放| 91视频在线看| 亚洲精品va在线观看| 色综合天天做天天爱| 婷婷久久综合九色综合绿巨人| 91色porny| 亚洲免费在线观看| 色噜噜狠狠成人中文综合| 一区二区视频在线| 欧美色精品在线视频| 亚洲成av人片在线| 日韩一区二区三免费高清| 麻豆91精品91久久久的内涵| 久久久午夜精品理论片中文字幕| 国产一区二区不卡在线| 国产精品美女久久久久久久久| www.在线欧美| 亚洲国产日韩a在线播放性色| 欧美日韩一区三区四区| 亚洲国产三级在线| 日韩精品一区二区三区老鸭窝| 精品一区二区三区视频在线观看| 久久久久久久国产精品影院| av午夜精品一区二区三区| 亚洲影院理伦片| 精品国产乱码久久| 成人av电影在线网| 亚洲v日本v欧美v久久精品| 91精品国产aⅴ一区二区| 国产精品一区二区三区四区| 亚洲欧美日韩一区二区| 91精品啪在线观看国产60岁| 久久精品国产**网站演员| 国产精品三级视频|