und wieder dll und Markt - Seite 22

 
Renat Fatkhullin:

Ich habe herausgefunden, warum IBM gechunkte Antworten nicht akzeptiert werden:

Die Formatierung des Headers der Transfer-Encoding-Antwort war nicht korrekt, da sie ein doppeltes Leerzeichen anstelle eines einfachen Leerzeichens enthielt. Das Protokoll erlaubt dies, aber unser Parser hat es nicht berücksichtigt.

Deshalb haben wir den Chunked/Sliced Stream falsch verstanden und konnten nicht warten, bis er zu Ende war.


In der nächsten Beta wird es eine Korrektur geben. Höchstwahrscheinlich heute.


Wir haben bereits 2002 einen eingebetteten Text2Speech-Dienst in die MetaQuotes-Plattform integriert, der jedoch aufgrund der schlechten Implementierung wieder eingestellt wurde. Höchstwahrscheinlich wird sie dem Terminal und MQL5 als Standardfunktionalität hinzugefügt werden.

Das ist der männliche Weg!

Ich war zu begeistert vom Kakao :)

 
Nikolai Karetnikov:

Das ist männlich!

Ich habe mich ein wenig über den Kakao aufgeregt :)

Aber für Sie bleibt das Problem bei der Standardintegration von TEXT TO SPEECH. Entweder 10.000 Zeichen für ALLE Benutzer Ihres EA oder ein kostenpflichtiger Plan von IBM für $0,02/1000 Wörter. Was soll man dann mit dem Artikel machen? Was werden Sie tun, wenn es kein Geheimnis ist?

 

Hier ist ein funktionierendes Skript:

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

Hier ist ein funktionierendes Skript:

lädt das Skript eine Datei result.ogg.

Es ist nur nicht klar, was diese Datei ist und wie man sie anhören kann.

Ich habe es in einem anderen Format versucht.

Schnappschuss1

Schnappschuss2

 
Alexsandr San:

lädt das Skript eine Datei result.ogg.

Es ist nur nicht klar, was diese Datei ist, wie kann ich sie anhören?

Ich habe es in einem anderen Format versucht.


und hier habe ich einen einfachen Text mit zwei englischen Wörtern (Traders Forum.txt)

Foto von

Schnappschuss3

Dateien:
 

Ich verstehe, dass es möglich ist, (file.txt) zu senden und im Format (file.wav) zu empfangen

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

Hier ist das Skript WebRequest.mq5 inWebRequest.wav

Schuss4

Bild5

Dateien:
WebRequest.zip  5806 kb
 
Alexsandr San:
Ich verstehe, dass Sie es irgendwie einrichten können, (file.txt) zu senden und es im Format (file.wav) zu empfangen

Zurzeit ist dies nicht sehr kosteneffizient. Das heißt, der IBM-Dienst sendet Dateien, die noch nicht von WebRequest gelesen werden können (das sollte bald behoben werden), aber selbst wenn sie es können,ist die kostenlose Nutzung desText to Speech-Dienstes auf 10.000 Zeichen pro Monat beschränkt. Das heißt, sie werden einen kleinen Absatz umwandeln und das war's. Es gibt eine kostenpflichtige Option (für diejenigen, die es wirklich brauchen). Wenn Sie einen kostenlosen Nachvertonungsdienst ohne Einschränkungen finden, können Sie vielleicht versuchen, sich wieder zu versöhnen. Aber ich glaube nicht, dass es welche gibt...

Die Einführung vonText to Speech in Terminals und Sprache, die für KI-Entwickler sicherlich großartig wäre, beruhigt uns,aber es wird Zeit brauchen. Ich denke, es ist besser, jetzt zu warten...

 
Alexsandr San:

lädt das Skript eine result.ogg-Datei.

Beta 2472 ist bereits verfügbar und funktioniert mit dem IBM-Dienst.

Dieser Dienst gibt keine Dateien im wav-, sondern im ogg-Format aus.

 
Google kann wav und 4 Mio. Zeichen kostenlos (oder 1 Mio. mit Netzwerkverarbeitung) pro Monat
 
Renat Fatkhullin:

Hier ist ein funktionierendes Skript:

Ja! )