Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.12.2017, 22:34
nixon232 nixon232 вне форума
Активный
 
Регистрация: 26.01.2014
Сообщения: 282
Версия Delphi: delphi xe4
Репутация: выкл
По умолчанию 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)
Ssl Подключен. Как поменять
Код:
Content-Type:multipart/form-data;
Там вроде стоит рид-онли.

Последний раз редактировалось nixon232, 21.12.2017 в 22:39.
Ответить с цитированием
  #2  
Старый 22.12.2017, 21:09
nixon232 nixon232 вне форума
Активный
 
Регистрация: 26.01.2014
Сообщения: 282
Версия Delphi: delphi xe4
Репутация: выкл
По умолчанию

Решил средстваии синапс. Все бы хорошо, но теперь проблема с ответом.
По мануалу
Код:
<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>
Как понимать "1е+03"= 10^3?
Это типа мамой клянусь?)

Последний раз редактировалось nixon232, 22.12.2017 в 22:07.
Ответить с цитированием
  #3  
Старый 24.12.2017, 12:17
Аватар для dr. F.I.N.
dr. F.I.N. dr. F.I.N. вне форума
I Like it!
 
Регистрация: 12.12.2009
Адрес: Россия, г. Новосибирск
Сообщения: 660
Версия Delphi: D6/D7
Репутация: 26643
По умолчанию

Цитата:
Как понимать "1е+03"= 10^3?
Это типа мамой клянусь?)
Экспоненциальная запись
__________________
Грамотно поставленный вопрос содержит не менее 50% ответа.
Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть.
Ответить с цитированием
  #4  
Старый 17.08.2018, 17:26
leonid.molchanow leonid.molchanow вне форума
Прохожий
 
Регистрация: 17.08.2018
Адрес: Новосибирск
Сообщения: 2
Версия Delphi: Delphi 10
Репутация: 10
По умолчанию

Цитата:
Сообщение от nixon232
Решил средстваии синапс.

А можете рассказать, как Вы реализовали это синапсом? У меня прилетает ошибка 400 и ответ "Bad sound. Check file format and Content-Type!", всё перепробовал, но верного варианта не нащупал
Ответить с цитированием
  #5  
Старый 17.08.2018, 17:41
leonid.molchanow leonid.molchanow вне форума
Прохожий
 
Регистрация: 17.08.2018
Адрес: Новосибирск
Сообщения: 2
Версия Delphi: Delphi 10
Репутация: 10
По умолчанию

Вот такая реализация, получается, ошибочна

Код:
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;

А что исправить, непонятно
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:57.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter