|
|
#1
|
|||
|
|||
SpeechKit POST
Пытаюсь подружится с АПИ яндекса, взял простой Хело ворлд, но чтото не то с заголовком
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
|
||||
|
||||
Цитата:
Грамотно поставленный вопрос содержит не менее 50% ответа. Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть. |
#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; А что исправить, непонятно |