![]() |
|
|
#1
|
|||
|
|||
|
Пытаюсь подружится с АПИ яндекса, взял простой Хело ворлд, но чтото не то с заголовком
https://tech.yandex.ru/speechkit/clo...start-docpage/ Код:
POST /asr_xml?uuid=<идентификатор пользователя>&key=<API-ключ>&topic=queries HTTP/1.1 Host: asr.yandex.net Content-Type: audio/x-wav ... (двоичное содержимое аудио файла) Код:
try
Str := TIdMultiPartFormDataStream.Create;
Str.AddFormField('uuid','Ид');
Str.AddFormField('key','ключ);
Str.AddFormField('topic','queries');
Str.AddFormField('lang','ru-RU');
Str.AddFile('file',ExtractFilePath(ParamStr(0))+'A2.wav','audio/x-wav');
IdHTTP1.Request.Host := 'asr.yandex.net';
IdHTTP1.Request.ContentType := 'audio/x-wav';//bit=8;rate=8000';
IdHTTP1.Request.TransferEncoding := 'chunked';
ShowMessage(IdHTTP1.Post('https://asr.yandex.net/asr_xml?', Str));
finally
idHTTP1.Socket.Close
end;
Str.Free;
end;Код:
(Request-Line):POST /asr_xml HTTP/1.0 Content-Type:multipart/form-data; boundary=--------122117202001317 Content-Length:54454 Transfer-Encoding:chunked Host:asr.yandex.net Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 User-Agent:Mozilla/3.0 (compatible; Indy Library) Код:
Content-Type:multipart/form-data; Последний раз редактировалось nixon232, 21.12.2017 в 22:39. |
|
#2
|
|||
|
|||
|
Решил средстваии синапс. Все бы хорошо, но теперь проблема с ответом.
По мануалу Код:
<recognitionResults success="1">
<variant confidence="0.69">твой номер 212-85-06</variant>
<variant confidence="0.7">твой номер 213-85-06</variant>
</recognitionResults>Код:
<recognitionResults success="1">
<variant confidence="0.81">вася</variant>
<variant confidence="1e+03">Власть </variant>
</recognitionResults>Это типа мамой клянусь?) Последний раз редактировалось nixon232, 22.12.2017 в 22:07. |
|
#3
|
||||
|
||||
|
Цитата:
|
|
#4
|
|||
|
|||
|
Цитата:
А можете рассказать, как Вы реализовали это синапсом? У меня прилетает ошибка 400 и ответ "Bad sound. Check file format and Content-Type!", всё перепробовал, но верного варианта не нащупал ![]() |
|
#5
|
|||
|
|||
|
Вот такая реализация, получается, ошибочна
Код:
HTTP:= THTTPSend.Create;
try
FS := TFileStream.Create('speech.wav', fmOpenRead);
HTTP.MimeType := 'audio/x-wav';
FS.Position := 0;
HTTP.Document.CopyFrom(FS, FS.Size);
url := 'https://asr.yandex.net/asr_xml?uuid=...&key=...&topic=queries&lang=ru-RU';
if HTTP.HTTPMethod('POST', url) then
ServerAnswerResultField.Lines.LoadFromStream(HTTP.Document);
finally
FS.Free;
HTTP.Free;
end;А что исправить, непонятно |