Latest posts on Yandex Speech Recognition topichttps://python.su/forum/topic/35248/2018-08-27T22:01:38+03:00Общий :: Network :: Yandex Speech Recognition
2018-08-27T22:01:38+03:00DamMercul194545<blockquote><em>turboone</em><br/>message_size = hex(len(message)).encode()</blockquote>зачем?<br/><blockquote><em>turboone</em><br/>data = s.recv(1000000)</blockquote>wtf (у яндекса должен быть свой лими<br/><blockquote><em>turboone</em><br/>Привет! Мучаюсь второй день, не могу сделать скрипт который будет отправлять аудиоданные потоком, используя Protocol Buffers. В док yandex сказано что нужно создать protobuf-сообщение и отправить через sockets. Я создал модель, но как теперь назначить ей данные и отправить ? Вот мой главный файл</blockquote>LMAO, ты что творишь, зачем надо делать message = model?<br/><blockquote><em>turboone</em><br/>use 'syntax = “proto2”</blockquote>не думаю что квчк тут к месту
Общий :: Network :: Yandex Speech Recognition
2018-05-13T13:58:52+03:00turboone192037Привет! Мучаюсь второй день, не могу сделать скрипт который будет отправлять аудиоданные потоком, используя Protocol Buffers. В док yandex сказано что нужно создать protobuf-сообщение и отправить через sockets. Я создал модель, но как теперь назначить ей данные и отправить ? <br/><br/>Вот мой главный файл <br/><div class="code"><pre> <span class="kn">import</span> <span class="nn">socket</span>
<span class="kn">import</span> <span class="nn">yandex_pb2</span>
<span class="n">model</span> <span class="o">=</span> <span class="n">yandex_pb2</span><span class="o">.</span><span class="n">ConnectionRequest</span><span class="p">()</span>
<span class="n">model</span><span class="o">.</span><span class="n">apiKey</span> <span class="o">=</span> <span class="s2">"wefeww-wefwefwefwe-wefw-wef-we-fw-e"</span>
<span class="n">s</span> <span class="o">=</span> <span class="n">socket</span><span class="o">.</span><span class="n">socket</span><span class="p">(</span><span class="n">socket</span><span class="o">.</span><span class="n">AF_INET</span><span class="p">,</span> <span class="n">socket</span><span class="o">.</span><span class="n">SOCK_STREAM</span><span class="p">)</span>
<span class="n">s</span><span class="o">.</span><span class="n">connect</span><span class="p">((</span><span class="s1">'asr.yandex.net'</span><span class="p">,</span> <span class="mi">80</span><span class="p">))</span>
<span class="n">header</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"GET /asr_partial HTTP/1.1</span><span class="se">\r\n</span><span class="s2">"</span>
<span class="s2">"User-Agent: KeepAliveClient</span><span class="se">\r\n</span><span class="s2">"</span>
<span class="s2">"Host: asr.yandex.net:80</span><span class="se">\r\n</span><span class="s2">"</span>
<span class="s2">"Upgrade: dictation</span><span class="se">\r\n\r\n</span><span class="s2">"</span><span class="p">)</span>
<span class="n">byte_head</span> <span class="o">=</span> <span class="n">header</span><span class="o">.</span><span class="n">encode</span><span class="p">()</span>
<span class="n">s</span><span class="o">.</span><span class="n">send</span><span class="p">(</span><span class="n">byte_head</span><span class="p">)</span>
<span class="n">message</span> <span class="o">=</span> <span class="n">model</span>
<span class="n">message_size</span> <span class="o">=</span> <span class="nb">hex</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">message</span><span class="p">))[</span><span class="mi">2</span><span class="p">:]</span><span class="o">.</span><span class="n">encode</span><span class="p">()</span>
<span class="n">message_contoller</span> <span class="o">=</span> <span class="s1">'</span><span class="se">\r\n</span><span class="s1">'</span><span class="o">.</span><span class="n">encode</span><span class="p">()</span>
<span class="n">message_request</span> <span class="o">=</span> <span class="n">message</span><span class="o">.</span><span class="n">encode</span><span class="p">()</span>
<span class="n">s</span><span class="o">.</span><span class="n">send</span><span class="p">(</span><span class="n">message_size</span><span class="p">)</span>
<span class="n">s</span><span class="o">.</span><span class="n">send</span><span class="p">(</span><span class="n">message_contoller</span><span class="p">)</span>
<span class="n">s</span><span class="o">.</span><span class="n">send</span><span class="p">(</span><span class="n">message_request</span><span class="p">)</span>
<span class="n">data</span> <span class="o">=</span> <span class="n">s</span><span class="o">.</span><span class="n">recv</span><span class="p">(</span><span class="mi">1000000</span><span class="p">)</span>
<span class="n">s</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
</pre></div><br/>Вот модель сообщения которую я потом превратил в класс yandex_pb2<br/><br/><div class="code"><pre> <span class="na">use 'syntax</span> <span class="o">=</span> <span class="s">"proto2"</span>
<span class="na">message ConnectionRequest</span>
<span class="na">{</span>
<span class="na">optional int32 protocolVersion</span> <span class="o">=</span> <span class="s">1 [default = 1];</span>
<span class="s"> </span>
<span class="s"> required string speechkitVersion = 2;</span>
<span class="s"> </span>
<span class="s"> required string serviceName = 3;</span>
<span class="s"> </span>
<span class="s"> required string uuid = 4;</span>
<span class="s"> </span>
<span class="s"> required string apiKey = 5;</span>
<span class="s"> </span>
<span class="s"> required string applicationName = 6;</span>
<span class="s"> </span>
<span class="s"> required string device = 7;</span>
<span class="s"> </span>
<span class="s"> required string coords = 8;</span>
<span class="s"> </span>
<span class="s"> required string topic = 9;</span>
<span class="s"> </span>
<span class="s"> required string lang = 10;</span>
<span class="s"> </span>
<span class="s"> required string format =11;</span>
<span class="na">optional bool disableAntimatNormalizer</span> <span class="o">=</span> <span class="s">18 [default = false];</span>
<span class="na">optional AdvancedASROptions advancedASROptions</span> <span class="o">=</span> <span class="s">19;</span>
<span class="s"> </span>
<span class="s"> }</span>
<span class="na">message AdvancedASROptions</span>
<span class="na">{</span>
<span class="na">optional bool partial_results</span> <span class="o">=</span> <span class="s">1 [default = true];</span>
<span class="na">optional string biometry</span> <span class="o">=</span> <span class="s">24;</span>
<span class="na">}</span>
</pre></div>