Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.07.2013, 22:00   #11
TUberwer
Форумчанин
 
Регистрация: 01.07.2013
Сообщений: 221
По умолчанию

И последний глупый вопрос в этой теме:
В статье код:
Код:
HTTPPostFile('https://www.google.com/speech-api/v1/recognize?xjerr=1&client=chromium&lang=ru-RU', sound, ExtractFilename(OutFileName), Stream, StrList);
И я не очень понял что вставить в OutFileName... Тут должен быть путь к отправляемому файлу, или что? За что отвечает это ExtractFilename(OutFileName)?
И какое значение там нужно ставить для отправки в https://www.google.com/speech-api/v1...ium&lang=ru-RU ?
TUberwer вне форума Ответить с цитированием
Старый 10.07.2013, 22:15   #12
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Можете THTTPSendEx попробовать. Там реализован нормальный TMultiparformDataStream(как в Indy, но не для инди а для синапсов) и всяческие удобные вариации POST/GET запросов.

Все упрощается до:
Код:
var
 HTTP:THTTPSendEx;
 myFile:TMultipartformdataStream;
begin
  HTTP:=THTTPSendEx.Create;
 myFile:=TMultipartFormDataStream.Create;
 try
 myFile.AddFile('FileName','ПУТЬ К ФАЙЛУ');
 myFile.DataEnd;
 if HTTP.Post('http://лолчто.рф',myFile,sHTMLCode) then
 begin
   //Запрос на сервер прошел, можно проверять ReturnCode/ResponseCode
   //В sHTMLCode - возвращается исходный код страницы ответа на файл.
 end;
 finally
  FreeAndNil(HTTP);
  FreeAndNil(myFile);
 end;
end;

Последний раз редактировалось Человек_Борща; 10.07.2013 в 22:18.
Человек_Борща вне форума Ответить с цитированием
Старый 11.07.2013, 16:39   #13
TUberwer
Форумчанин
 
Регистрация: 01.07.2013
Сообщений: 221
По умолчанию Отсылать аудио файл на распознавание и принимать ответ от гугла

Всем привет,
Вот нашел статью (http://habrahabr.ru/post/144535)
В ней описано как можно отсылать аудио файл на распознавание, и принимать ответ от гугла.
Вот сама функция отправки:
Код:
function HTTPPostFile(Const URL, FieldName, FileName: String; Const Data: TStream; Const ResultData: TStrings): Boolean;
const
  CRLF = #$0D + #$0A;
var
  HTTP: THTTPSend;
  Bound, Str: String;
begin
  Bound := IntToHex(Random(MaxInt), 8) + '_Synapse_boundary';
  HTTP := THTTPSend.Create;
  try
    Str := '--' + Bound + CRLF;
    Str := Str + 'content-disposition: form-data; name="' + FieldName + '";';
    Str := Str + ' filename="' + FileName + '"' + CRLF;
    Str := Str + 'Content-Type: audio/x-flac; rate=8000' + CRLF + CRLF;
    HTTP.Document.Write(Pointer(Str)^, Length(Str));
    HTTP.Document.CopyFrom(Data, 0);
    Str := CRLF + '--' + Bound + '--' + CRLF;
    HTTP.Document.Write(Pointer(Str)^, Length(Str));
    HTTP.MimeType := 'audio/x-flac; rate=8000, boundary=' + Bound;
    Result := HTTP.HTTPMethod('POST', URL);
    ResultData.LoadFromStream(HTTP.Document);
  finally
    HTTP.Free;
  end;
end;
Вот по нажатию кнопки я вызываю функцию
Код:
procedure TForm1.Button3Click(Sender: TObject);
var
sound : String;
Stream: TMemoryStream;
StrList: TStringList;
begin
Stream := TMemoryStream.Create;
StrList := TStringList.Create;
sound := ExtractFilePath(ParamStr(0))+'sound.flac';
HTTPPostFile('https://www.google.com/speech-api/v1/recognize?xjerr=1&client=chromium&lang=ru-RU', sound, ExtractFilename(OutFileName), Stream, StrList);
Form1.Panel1.Caption := 'Success';
Stream.Free;
StrList.Free;
end;
Но выдает ошибку в этой строчке, говорит что не объявлен OutFileName, вот что нужно вставить в OutFileName? что там должно быть написано? за что эта надпись отвечает?
Код:
HTTPPostFile('https://www.google.com/speech-api/v1/recognize?xjerr=1&client=chromium&lang=ru-RU', sound, ExtractFilename(OutFileName), Stream, StrList);
И еще вопрос, в статье
Цитата:
StrList — это TStringList с ответом от Google.
То есть этой командой можно будет ответ от гугл вывести в memo?
Код:
Form1.Memo1.Line.Text := StrList.Text;
TUberwer вне форума Ответить с цитированием
Старый 11.07.2013, 19:20   #14
TUberwer
Форумчанин
 
Регистрация: 01.07.2013
Сообщений: 221
По умолчанию

UPаю, ответа пока нету(
TUberwer вне форума Ответить с цитированием
Старый 11.07.2013, 20:37   #15
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Google Speech API не документирован, однако его можно выжать из исходников Chromium. Удачи.
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Распознавание аудио alezha C# (си шарп) 10 22.05.2013 17:50
А как открыть аудио файл?.. apeorin Общие вопросы C/C++ 7 10.11.2012 18:27
Алгоритм Хсю (аудио файл) bigory Помощь студентам 0 26.03.2012 15:46
AnsiString -> Аудио файл Assemblerru Общие вопросы C/C++ 4 11.11.2010 19:22
Не проигрывается аудио-файл. xakero4ek Общие вопросы Delphi 6 07.10.2010 12:50