inververs
AutoIT Гуру
- Сообщения
- 2,135
- Репутация
- 465
Andrey145, видимо у вас не правильные файлы. Вот рабочий пример:
Запрос отправляется для английского языка: lang=en-en
Смотри файл во вложении для теста.
В ответ приходит:
*почему то два раза {"result":[]}
По поводу заголовков, перенесу информацию сюда:
Content-Type:
Content-Type: audio/x-flac; rate=44100;
Set the rate to be equal to the rate of the FLAC file (generally 44100Hz) but it supports different rates.
Content-Type: audio/l16; rate=16000; is also supported with a rate of 44100Hz or 16000Hz for files encoded with LPCM 16-bit signed-integer.
NOTE: Make sure the rate in your header matches the sample rate you used for your audio capture.
Код:
#include <winhttp.au3>
#include <FileConstants.au3>
Global Const $API_KEY = 'здесь хранится ваш ключ'
Global Const $USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36'
main()
Exit
Func main()
Local $file_path = FileOpenDialog('Укажите файл flac', @ScriptDir, 'All (*.*)', $FD_FILEMUSTEXIST)
If @error Or Not FileExists($file_path) Then
Return SetError(1, 'Нет файла', False)
EndIf
Local $request_response = speech_api_file_recognize($file_path)
MsgBox(0, 'Ответ', $request_response)
EndFunc ;==>main
Func speech_api_file_recognize($file_path, $use_ssl = False)
Local Const $UTF8 = 1
Local $h = FileOpen($file_path, $FO_READ + $FO_BINARY)
Local $file_content = FileRead($h)
FileClose($h)
Local $hOpen = _WinHttpOpen($USER_AGENT)
Local $hConnect, $request_response
Local $path = '/speech-api/v2/recognize?output=json&lang=en-en&key=' & $API_KEY
Local $headers = 'Content-Type: audio/x-flac; rate=44100;' & @CRLF
If $use_ssl Then
$hConnect = _WinHttpConnect($hOpen, 'www.google.com', $INTERNET_DEFAULT_HTTPS_PORT)
$request_response = _WinHttpSimpleSSLRequest($hConnect, 'POST', $path, Default, $file_content, $headers, False, $UTF8)
Else
$hConnect = _WinHttpConnect($hOpen, 'www.google.com')
$request_response = _WinHttpSimpleRequest($hConnect, 'POST', $path, Default, $file_content, $headers, False, $UTF8)
EndIf
_WinHttpCloseHandle($hConnect)
_WinHttpCloseHandle($hOpen)
Return $request_response
EndFunc ;==>speech_api_recognize
Запрос отправляется для английского языка: lang=en-en
Смотри файл во вложении для теста.
В ответ приходит:
Код:
{"result":[]}
{"result":[{"alternative":[{"transcript":"good morning Google how are you feeling today","confidence":0.93882114},{"transcript":"goodmorning Google how are you feeling today"}],"final":true}],"result_index":0}
*почему то два раза {"result":[]}
По поводу заголовков, перенесу информацию сюда:
Content-Type:
Content-Type: audio/x-flac; rate=44100;
Set the rate to be equal to the rate of the FLAC file (generally 44100Hz) but it supports different rates.
Content-Type: audio/l16; rate=16000; is also supported with a rate of 44100Hz or 16000Hz for files encoded with LPCM 16-bit signed-integer.
NOTE: Make sure the rate in your header matches the sample rate you used for your audio capture.