Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 以编程方式将新wordlist.txt添加到SAPI字典_Delphi_Sapi - Fatal编程技术网

Delphi 以编程方式将新wordlist.txt添加到SAPI字典

Delphi 以编程方式将新wordlist.txt添加到SAPI字典,delphi,sapi,Delphi,Sapi,我正在开发一个新的Delphi应用程序,它使用语音到文本的听写作为其主要数据输入,所需数据与医学术语特别相关,例如,用户只需输入任何或所有这些单词(高血压、中风、心脏病、肾病等)。 由于我对COM对象编程的了解非常有限,因此我正在寻找一种简单的解决方案,通过制作一个文本单词列表,并通过编程将该列表介绍给sapi语音识别引擎,来培训sapi 5.4中可能有数百个医学术语。我希望通过代码完成,而不是通过sapi培训窗口或向导。 我尝试以下方法:通过将整个wordlist.txt(大约100000个单

我正在开发一个新的Delphi应用程序,它使用语音到文本的听写作为其主要数据输入,所需数据与医学术语特别相关,例如,用户只需输入任何或所有这些单词(高血压、中风、心脏病、肾病等)。 由于我对COM对象编程的了解非常有限,因此我正在寻找一种简单的解决方案,通过制作一个文本单词列表,并通过编程将该列表介绍给sapi语音识别引擎,来培训sapi 5.4中可能有数百个医学术语。我希望通过代码完成,而不是通过sapi培训窗口或向导。 我尝试以下方法:通过将整个wordlist.txt(大约100000个单词)复制到名为(wordlist)的TFDTable中,然后运行此代码,但它无法运行,并且没有任何错误消息

 Procedure TForm1.BtnClick( Sender : TObject );
Var
  Hr : HRESULT;
Begin
  Wordlist.First;
  While Not Wordlist.Eof Do
    Begin
      SpLexicon.AddPronunciation( Wordlist.FieldByName( 'Field1' )
          .AsString ,
        406 , SPPS_Noun , '' );
      If Hr = S_OK Then
        Wordlist.Next
      Else
        Begin
          ShowMessage( 'Failed' );
          Exit
        End;
    End;
  ShowMessage( 'OK' );
End;
我做错了什么?
非常感谢您。

from仍然在线-您在哪一部分失败?到目前为止您的代码是什么?亲爱的AmigoJack,我知道如何通过AddVocation方法一次添加一个单词,但我就是找不到如何通过编程添加多个单词的文本文件?如果我理解您的意思,添加一个单词是有效的。对吗?顺便问一下,为什么在读取文本文件时将文本文件加载到TFDTable中,而不是直接调用SAPI函数?您的代码缺少对所有变量的声明。您希望我们如何检查您的代码?请提供一个完整、简单的程序,再现您的问题。至少我看到你检查人力资源是否成功,但你没有分配它!您的问题可以简化为“如何逐行读取文本文件”。无论SpLexicon的类型是什么:它都不需要处理读取文件的问题——这是一项不受任何上下文约束的基本任务。