0

Delphi XE2のSpeechAPI 5.4の例があります。その一部を次に示します。

try
  SpVoice:= TSpVoice.Create(nil);
  SOTokens := SpVoice1.GetVoices('', '');
  for i := 0 to SOTokens.Count - 1 do begin
    SOToken := SOTokens.Item(I);
    SOToken._AddRef;
    s:=SOToken.GetDescription(0); // raise exception
    Log(IntToStr(i)+': '+s);
  end;
except
  on E : Exception do begin
    Log(E.ClassName+' error raised, with message : '+E.Message);
  end;
end;

このコードは、XP から 8.1 までのすべての Windows で正しく機能します。残念ながら、Windows 10 では例外が発生します。ログファイルで私は読むことができます:

0: Microsoft David Desktop - English (United States)
EOleException error raised, with message : OLE error 8004503A

標準の Windows テキスト読み上げツールは、利用可能な2 つの音声を表示します。

Microsoft David Desktop - English (United States)
Microsoft Zira Desktop - English (United States)

TSpVoice動的に作成することが重要です。

例外なくすべてのボイスを操作するにはどうすればよいですか?

4

0 に答える 0