рдЕрдкрдиреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Google рднрд╛рд╖рдг API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рд╕рднреА рд╣рдмреНрдмрд░реЗрдЬреАрддрд▓рд╛рдореА рдХреЛ рд╢реБрдн рджрд┐рдиред

рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдмрдирд╛рдиреЗ рдореЗрдВ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рд╕рд╣рд┐рдд Google рднрд╛рд╖рдг рдПрдкреАрдЖрдИ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ рд╣реА рдХрдИ рд▓реЗрдЦ рд▓рд┐рдЦреЗ рдЬрд╛ рдЪреБрдХреЗ рд╣реИрдВред

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рд╡реЙрдпрд╕ рдХрдВрдЯреНрд░реЛрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреИрд╕реЗ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдмрд┐рд▓реНрд▓реА рдХреЗ рдиреАрдЪреЗ, рдХреМрди рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реИред


рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП, рдореИрдВ Embarcadero RAD Studio XE рдФрд░ рдХрдИ рдореБрдлреНрдд рд╕рд╣рд╛рдпрдХ рдШрдЯрдХреЛрдВ (JEDI Core, JEDI VCL, New Audio Components for Delphi, Synapse, uJSON, CoolTrayIcon) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ

рд▓реЗрдЦ "рд╣рдорд╛рд░реЗ .NET рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ Google рд╡реЙрдЗрд╕ рдЦреЛрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛" рд╡рд░реНрдгрд┐рдд рд╣реИ рдХрд┐ Google рднрд╛рд╖рдг рдПрдкреАрдЖрдИ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реВрдХреНрд╖реНрдорддрд╛рдПрдВ рдХреНрдпрд╛ рд╣реИрдВред

рдореИрдВ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдФрд░ рд╕рд╣рд╛рдпрдХ рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреБрдЫ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ред

1. FLAC рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдзреНрд╡рдирд┐ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ

рдЗрд╕рдХреЗ рд▓рд┐рдП, рдореИрдВ рдбреЗрд▓реНрдлреА рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдирдП рдСрдбрд┐рдпреЛ рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдзреНрд╡рдирд┐ рдХреЛ FLAC рдкреНрд░рд╛рд░реВрдк рдореЗрдВ 8 kHz рдХреА рдЖрд╡реГрддреНрддрд┐ рдХреЗ рд╕рд╛рде рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЧрдпрд╛ рд╣реИред

VCL рдШрдЯрдХ DXAudioIn1 рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдЗрд╕рдореЗрдВ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ (1 рдЪреИрдирд▓ рдФрд░ 8 kHz рдХреА рдЖрд╡реГрддреНрддрд┐) рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, DXAudioIn1 рдХрд╛ рдбреЗрдЯрд╛ FastGainIndicator1 рдкрд░ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ OnGainData рд╕реНрддрд░ рдХрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╣реЛрддрд╛ рд╣реИ, рдпрджрд┐ рд╕реНрддрд░ рд╕реЗрдЯ рд╕реНрддрд░ (рд▓рд╛рд▓ рд╕реВрдЪрдХ) рдХреА рддреБрд▓рдирд╛ рдореЗрдВ N рдЧреБрдирд╛ рдХрдо рд╣реЛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд░реЛрдХ рджреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдбреЗрдЯрд╛ Google рдХреЛ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЬрдм рд╕реНрддрд░ рдХреБрдЫ рдереНрд░реЗрд╢реЛрд▓реНрдб рдПрдо рдмрд╛рд░ (рдиреАрд▓рд╛ рд╕реВрдЪрдХ) рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдореИрдВрдиреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд╢реБрд░реВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛ рджрд┐рдпрд╛ред

рдмреЗрд╢рдХ, рдРрд╕рд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдмрд╣реБрдд рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдЯрд╛рд░реНрдЯ рдХреЛ рджрдмрд╛рдиреЗ рдФрд░ рдмрдЯрди рдмрдВрдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рд╕реНрддрд░реЛрдВ рдФрд░ рд╕рдВрдЪрд╛рд▓рди рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде, рдХрд╛рд░реНрдпрдХреНрд░рдо рдорд╛рдЗрдХреНрд░реЛрдлреЛрди рд╕реЗ рдПрдХ рдЙрдкрдпреЛрдЧреА рдШрдЯрдХ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рддрдереНрдп рдХреЛ рдкрдХрдбрд╝рддрд╛ рд╣реИред

рдФрд░ рдЕрдВрдд рдореЗрдВ, FastGainIndicator1 рдХрд╛ рдбреЗрдЯрд╛ FLACOut1 рдШрдЯрдХ рдкрд░ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╕реАрдзреЗ FLAC рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдПрдХ рдлрд╛рдЗрд▓ рдкрд░ рд▓рд┐рдЦрддрд╛ рд╣реИред

рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП StartRecord рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред

2. рдорд╛рдиреНрдпрддрд╛ рдХреЗ рд▓рд┐рдП Google рдХреЛ рдлрд╝рд╛рдЗрд▓ рднреЗрдЬрдирд╛ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛

рд░рд┐рдХреЙрд░реНрдб рдлрд╝рд╛рдЗрд▓ рдХреЛ Google рдХреЛ Synapse рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдорд╛рдиреНрдпрддрд╛ рдХреЗ рд▓рд┐рдП рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред

Synapse рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╕реВрдХреНрд╖реНрдорддрд╛рдПрдВ рдФрд░ рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ HTTPS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?

a) Libeay32.dll рдФрд░ ssleay32.dll рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
b) рдЙрдкрдпреЛрдЧ рдореЗрдВ, рдЖрдкрдХреЛ SSL_OpenSSL рдлрд╝рд╛рдЗрд▓ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреА рд╣реЛрдЧреА

HTTPPostFile рдлрд╝рдВрдХреНрд╢рди рдлрд╝рд╛рдЗрд▓ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИред

рдЗрд╕реЗ рдмрд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ:
HTTPPostFile ('https://www.google.com/speech-api/v1/recognize?xjerr=1&client=chromium&lang=en-RU', 'userfile', ExtractFilename (OutFileName), рд╕реНрдЯреНрд░реАрдо, рд╕реНрдЯреНрд░рд╛рд▓рд┐рд╕реНрдЯ);

рдЬрд╣рд╛рдБ
рд╕реНрдЯреНрд░реАрдо рдПрдХ TFileStream рд╕реНрдЯреНрд░реАрдо рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдЕрдкрдиреА рд░рд┐рдХреЙрд░реНрдб рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХреЛ FLAC рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкрдврд╝рддреЗ рд╣реИрдВред
StrList Google рд╕реЗ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдПрдХ TStringList рд╣реИред

HTTPPostFile рдлрдВрдХреНрд╢рди рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рд╕реВрдХреНрд╖реНрдорддрд╛рдПрдВ рд╣реИрдВ:

function TMainForm.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; 


3. Google рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рдФрд░ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛

Google рдХреА рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд░реЗрдЦрд╛ рдПрдХ JSON рдлреЙрд░реНрдо рдореЗрдВ рдЖрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

{[рд╕реНрдерд┐рддрд┐ ": 0," рдЖрдИрдбреА ":" 5e34348f2887c7a3cc27dc3695ab4575-1 "," рдкрд░рд┐рдХрд▓реНрдкрдирд╛ ": [{" рдЙрдЪреНрдЪрд╛рд░рдг ":" рдиреЛрдЯрдкреИрдб "," рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ ": 0.7581704}]}}

рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдореИрдВ uJSON рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИ:
рдлрд╝реАрд▓реНрдб рд╕реНрдерд┐рддрд┐ = 0 - рд░рд┐рдХреЙрд░реНрдб рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкрд╣рдЪрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ
рдлрд╝реАрд▓реНрдб рд╕реНрдерд┐рддрд┐ = 5 - рд░рд┐рдХреЙрд░реНрдб рдкрд╣рдЪрд╛рдирд╛ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реИ
рдЖрдИрдбреА рдлрд╝реАрд▓реНрдб рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдЕрдиреБрд░реЛрдз рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИ
рдкрд░рд┐рдХрд▓реНрдкрдирд╛ рдХреНрд╖реЗрддреНрд░ рдорд╛рдиреНрдпрддрд╛ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ; рдЗрд╕рдореЗрдВ 2 рдЙрдкрдХреНрд╖реЗрддреНрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
рдЙрдЪреНрдЪрд╛рд░рдг - рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рд╡рд╛рдХреНрдпрд╛рдВрд╢
confidence - рдорд╛рдиреНрдпрддрд╛ рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕

рдлрд╝рд╛рдЗрд▓ рднреЗрдЬрдирд╛, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛, рдХрдорд╛рдВрдб рдХреЛ рдЦреЛрдЬрдирд╛ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛, рдореИрдВрдиреЗ рдЗрд╕реЗ рдПрдХ рдЕрд▓рдЧ JvThreadRecognize рдзрд╛рдЧрд╛ рдореЗрдВ рд░рдЦрд╛ред

рдЖрджреЗрд╢реЛрдВ рдХреА рд╕реВрдЪреА MSpeechCommand.ini рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рддреА рд╣реИ, рдПрдХ рдЙрджрд╛рд╣рд░рдг рдлрд╝рд╛рдЗрд▓:

;notepad.exe
;script\Show_Desktop.scf
;script\Lock_Workstation.cmd
;script\Halt_Workstation.cmd
;script\Reboot_Workstation.cmd
;script\Logoff_Workstation.cmd
qip;C:\Program Files\QIP Infium\infium.exe
;firefox.exe


рдкрд░рд┐рдгрд╛рдо: рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХрд╛ рджрд┐рдЦрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдХреБрдЫ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Google рд╕реНрдкреАрдЪ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ (рдЕрдм рддрдХ рдпрд╣ рдХреЗрд╡рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ)ред рд▓реЗрдХрд┐рди рдХреЛрдИ рднреА рдЗрд╕реЗ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рдФрд░ рд╕рд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдорд╛рдЙрд╕ рдХреЛ рдХреИрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рдкрд╛рда рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдкрд╛рда рдЯрд╛рдЗрдк рдХрд░реЗрдВ, рдЖрджрд┐

рддреИрдпрд╛рд░-рдирд┐рд░реНрдорд┐рдд рдмрд┐рд▓реНрдб рдкреНрд░реЛрдЧреНрд░рд╛рдо рдФрд░ рд╕реНрд░реЛрдд (GPLv3) code.google.com/p/mspeech рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ

рд░рдЪрдирд╛рддреНрдордХ рдЖрд▓реЛрдЪрдирд╛ рдФрд░ рдЗрдЪреНрдЫрд╛рдУрдВ рдХреЛ рд╕реБрдирдХрд░ рдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛрдЧреАред рдЖрдкрдХрд╛ рдзрдиреНрдпрд╡рд╛рдж

Source: https://habr.com/ru/post/In144535/


All Articles