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