Trovato un suggerimento qui: http://blog.blong.com/2021/04/sapi-microsoft-speech-api-problems-with.html
Per evitare l'errore sopra riportato è necessario commentare con “;” i due righi relativi a “=IStream” e “=ISequentialStream” all'interno del file C:\Program Files (x86)\Embarcadero\Studio\23.0\bin\tlibimp.sym, salvare il file e ripetere la procedura.
Paragrafo interessato nel file tlibimp.sym:
[BuiltInInterfaces]
{00020400-0000-0000-C000-000000000046}=IDispatch
{00000000-0000-0000-C000-000000000046}=IUnknown
;{0000000C-0000-0000-C000-000000000046}=IStream
;{0C733A30-2A1C-11CE-ADE5-00AA0044773D}=ISequentialStream
Effettivamente, così il file SpeechLib_TLB.pas non riporta più alcun errore.
Ma …
All'interno del progetto, nella sezione “Palette”, appare corettamente la sezione indicata durante l'importazione del componente, contenente però solo oggetti inattivi/grigi.
Inoltre, il seguente codice genera l'errore “DefaultInterface is NULL. Component is not connected to Server” nella funzione TSpVoice.GetDefaultInterface: ISpeechVoice:
procedure TfMain.Button1Click(Sender: TObject);
var
SpVoice: TSpVoice;
begin
SpVoice.Create(nil);
try
SpVoice.Speak('A perfect day to try something else.', SVSFlagsAsync);
finally
SpVoice.Free;
end;
end;
Pare qualcosa ancora manchi …
Ale