通过使用以下代码,我设法在 Delphi/Lazarus 中使用 SAPI Text-To-Speech:
procedure TForm1.Button1Click(Sender: TObject);
var
SpVoice: Variant;
begin
SpVoice := CreateOleObject('SAPI.SpVoice');
SpVoice.Speak('Hello World!', 0);
end;
此代码自动选择英语标准语音。由于我需要将其本地化为西班牙语,因此我调查了我的系统(带有标准西班牙语的 Windows XP)是否有西班牙语语音或者我需要安装它,以及如何更改默认语音,但到目前为止还没有运气。因此我的问题是:
- 我如何知道我的系统是否已经安装了西班牙语语音或者我需要安装它?
- 假设我安装了我需要的语音,我怎样才能让 SAPI 使用该语音而不是标准语音?
我猜我可以通过使用以下代码获得西班牙语语音(C0A 是西班牙语的代码):
SpVoice.GetVoices('','Language=C0A').Item(0)
但不知道如何设置要使用的声音。
编辑:为避免混淆,我需要使其与 Delphi 和 Lazarus 兼容,这是最后一个主要开发工具。