e di nuovo dll e mercato - pagina 22

 
Renat Fatkhullin:

Ho scoperto perché le risposte chunked del servizio IBM non vengono accettate:

Avevano una formattazione errata nell'intestazione di risposta Transfer-Encoding, dove hanno messo uno spazio doppio invece di uno spazio singolo. Il protocollo lo permette, ma il nostro parser non ne ha tenuto conto.

È per questo che abbiamo letto male il flusso a pezzi/a fette e non potevamo aspettare che finisse.


Ci sarà una correzione nella prossima beta. Molto probabilmente oggi.


Abbiamo lanciato un servizio Text2Speech incorporato nella piattaforma MetaQuotes intorno al 2002, ma è stato buttato fuori a causa della scarsa implementazione. Molto probabilmente, sarà aggiunto al terminale e a MQL5 come funzionalità standard.

Questo è il modo più virile!

Ero troppo eccitato per il cacao :)

 
Nikolai Karetnikov:

questo è virile!

Mi sono un po' eccitato per il cacao :)

Ma, per voi, il problema rimarrà fino all'integrazione standard TEXT TO SPEECH. O 10.000 caratteri per tutti gli utenti della vostra EA, o un piano a pagamento da IBM per 0,02$/1000 parole. Cosa fare allora con l'articolo? Cosa farai, se non è un segreto?

 

Ecco uno script funzionante:

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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:

Ecco uno script funzionante:

lo script carica qualche file result.ogg.

Solo che non è chiaro, cos'è questo file? Come ascoltarlo?

L'ho provato in un formato diverso.

Istantanea1

Istantanea2

 
Alexsandr San:

lo script carica un file result.ogg.

Solo che non è chiaro, cos'è questo file? Come posso ascoltarlo?

L'ho provato in un formato diverso.


ed ecco un testo semplice di due parole inglesi (Traders Forum.txt)

Foto di

Istantanea3

File:
 

Ho capito che è possibile inviare (file.txt) e riceverlo in formato (file.wav)

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

ecco lo script WebRequest.mq5 inWebRequest.wav

Colpo4

Immagine5

File:
WebRequest.zip  5806 kb
 
Alexsandr San:
Ho capito che si potrebbe in qualche modo organizzare l'invio (file.txt) e la ricezione in formato (file.wav)

Al momento, questo non è molto conveniente. Cioè, il servizio di IBM invia file che non sono ancora leggibili da WebRequest (dovrebbe essere fissato presto), ma anche quando lo sono, l'uso gratuito del servizioText to Speech è limitato a 10.000 caratteri al mese. Cioè, convertiranno un piccolo paragrafo e basta. C'è un'opzione a pagamento (questo è per coloro che ne hanno davvero bisogno). Forse se trovate un servizio di doppiaggio gratuito senza restrizioni, potete provare a rifare tutto da capo. Ma non credo che ci siano...

Siamo rassicurati dall'implementazione delText to Speech nel terminale e nella lingua, che sarebbe certamente splendido per gli sviluppatori di AI, ma, ci vorrà del tempo. Imho, è meglio aspettare ora...

 
Alexsandr San:

lo script carica un file result.ogg.

La beta 2472 è già disponibile e funziona con il servizio IBM.

Questo servizio non produce file in wav, ma in formato ogg.

 
google può wav e 4m caratteri gratis (o 1m con elaborazione di rete) al mese
 
Renat Fatkhullin:

Ecco uno script funzionante:

Sì! )