и снова dll и маркет - страница 22

 
Renat Fatkhullin:

Выяснилась причина непринятия chunked ответов от сервиса IBM:

У них неправильное форматирование в заголовке ответа Transfer-Encoding, где поставили двойной пробел вместо одиночного. Протоколом это разрешено, а вот в нашем парсере такое не было учтено.

Поэтому мы неправильно воспринимали chunked/нарезанный поток и не могли дождаться его окончания.


В следующей бете будет исправление. Скорее всего сегодня.


Встроенный Text2Speech сервис мы запускали еще в платформе MetaQuotes примерно в 2002 году, но выпилили из-за плохой реализации. Скорее всего снова добавим его в виде штатного функционала как в терминал, так и в MQL5.

вот это по-мужски! 

Про какао я погорячился :)

 
Nikolai Karetnikov:

вот это по-мужски! 

Про какао я погорячился :)

Но, для Вас проблема то останется вплоть до штатной интеграции TEXT TO SPEECH. Либо 10 000 символов на ВСЕХ пользователей Вашего советника, либо платный план от IBM за 0.02$/1000 слов. Как тогда со статьей быть? Что будете делать, если не секрет?

 

Вот рабочий скрипт:

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnStart()
  {
   char    post[],result[];
   string  url="https://api.eu-gb.text-to-speech.watson.cloud.ibm.com/instances/9886a3ce-5734-455f-8f78-7a56381da686/v1/synthesize?text=TEST";
   string  headers="Authorization: Basic YXBpa2V5OkdSMWJiM3pWTXM5ZmNOS0w2cEE5LTV6ajlwdFdsaUN1NmVoOW91cFVucFpC\r\n";
   string  result_headers;
   int     status;
//---
   status=WebRequest("GET",url,headers,100000,post,result,result_headers);
   if(status==-1)
     {
      Print("Ошибка в WebRequest. Код ошибки  =",GetLastError());
      //---
      StringSetLength(url,StringFind(url,"/",8));
      MessageBox("Необходимо добавить адрес '"+url+"' в список разрешенных URL во вкладке 'Советники'","Ошибка",MB_ICONINFORMATION);
     }
   else
     {
      if(status==200)
        {
         //--- успешная загрузка
         PrintFormat("Файл успешно загружен, размер %d байт.",ArraySize(result));
         PrintFormat("Заголовки сервера: %s",result_headers);
         //--- сохраняем данные в файл
         int filehandle=FileOpen("result.ogg",FILE_WRITE|FILE_BIN);
         if(filehandle!=INVALID_HANDLE)
           {
            //--- сохраняем содержимое массива result[] в файл
            FileWriteArray(filehandle,result,0,ArraySize(result));
            //--- закрываем файл
            FileClose(filehandle);
           }
         else
            Print("Ошибка в FileOpen. Код ошибки =",GetLastError());
        }
      else
         PrintFormat("Ошибка загрузки '%s', код %d",url,status);
     }
  }
 
Renat Fatkhullin:

Вот рабочий скрипт:

скрипт загружает какой-то файл  result.ogg.

только он не понятный, что это за файл  ? как его прослушать?

я попытался его в другой формат

Снимок1

Снимок2

 
Alexsandr San:

скрипт загружает какой-то файл  result.ogg.

только он не понятный, что это за файл  ? как его прослушать?

я попытался его в другой формат


а вот я обычный текст из двух английских слов (Traders Forum.txt)

Снимок

Снимок3

Файлы:
 

я так понимаю, что можно как то, организовать отправку( файла.txt) и получать его в формате( файла.wav)

------------------------------------------

вот вообще скрипт WebRequest.mq5 в WebRequest.wav

Снимок4

Снимок5

Файлы:
WebRequest.zip  5806 kb
 
Alexsandr San:
я так понимаю, что можно как то, организовать отправку( файла.txt) и получать его в формате( файла.wav)

На данный момент, это не очень рентабельно. То есть, сервис от IBM посылает файлы, которые пока не читаются WebRequest (должны вот-вот пофиксить), но даже когда будут читаться, бесплатное пользование службой Text to Speech ограничено 10 000 символами в месяц. То есть - конвертируют небольшой абзац и все. Есть платный вариант (это для тех, кому оочень нужно). Возможно, если найдете какие то бесплатные сервисы озвучки текста без ограничений - тогда можно попробывать замутить все снова. Но, врядли такие есть...

Нас обнадёжили внедрением Text to Speech в терминал и язык, что было бы конечно шикарно для разработчиков ИИ, но, это займет время. Имхо, сейчас лучше подождать...

 
Alexsandr San:

скрипт загружает какой-то файл  result.ogg.

Бета 2472 уже доступна и там все работает с сервисом IBM.

Этот сервис выдает файлы не в wav, а в ogg формате.

 
google умеет wav и 4млн символов бесплатно (или 1 млн с обработкой сетью) в месяц
 
Renat Fatkhullin:

Вот рабочий скрипт:

Да! )