Показать сообщение отдельно
  #2  
Старый 26.02.2014, 23:26
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Вот пример, вместо Алёнки можно записать и другой голосок
Код:
...
var
SpFileStream: TSpFileStream;
SpVoice: TSpVoice;
Voices:ISpeechObjectTokens;
i:integer;
begin
SpFileStream := TSpFilestream.Create(nil);
SpVoice := TSpVoice.Create(nil);
try
SpFileStream.Format.type_ := SAFT11kHz8BitMono;
SpFileStream.Open('test.wav', SSFMCreateForWrite, FALSE);
SpVoice.AudioOutputStream := SPFileStream.DefaultInterface;
Voices:=SpVoice.GetVoices('', '');
for i := 0 to Voices.Count - 1 do
if Pos('Alyona', Voices.Item(i).GetAttribute('Name')) = 1 then
begin
SpVoice.Voice := Voices.Item(i);
Break;
end;
SpVoice.SynchronousSpeakTimeout := 1000;
SpVoice.Speak('Привет!', SVSFlagsAsync);
SpVoice.WaitUntilDone(3000);
finally
SpVoice.Free;;
SpFileStream.Free;
end;
end;
...
извнт, не могу это проверить экспериментально, нет голосовых движков в данный момент на борту вообще, но говорят что работает, и даже что если покопаться в посылаемых на SAPI флажках (в справке они присутствуют), то можно напр. 20-ти минутную "говорильню" без воспроизведения на динамик записать за 5 мин, быстрее значит раза в четыре
Ответить с цитированием