그리고 다시 dll과 시장 - 페이지 22

 
Renat Fatkhullin :

IBM 서비스에서 청크 응답을 수락하지 않는 이유는 다음과 같습니다.

Transfer-Encoding 응답 헤더의 형식이 잘못되어 단일 공백 대신 이중 공백을 넣습니다. 이것은 프로토콜에 의해 허용되지만 이것은 우리의 파서에서 고려되지 않았습니다.

따라서 우리는 청크/슬라이스 스트림을 잘못 인식하고 끝날 때까지 기다릴 수 없었습니다.


다음 베타에서 수정 사항이 있을 것입니다. 아마도 오늘.


우리는 2002년경 MetaQuotes 플랫폼에 내장된 Text2Speech 서비스를 출시했지만 제대로 구현되지 않아 중단했습니다. 아마도 터미널과 MQL5 모두에 표준 기능으로 다시 추가할 것입니다.

이것은 남성적이다!

코코아가 땡겼어요 :)

 
Nikolai Karetnikov :

이것은 남성적이다!

코코아가 땡겼어요 :)

그러나 TEXT TO SPEECH가 정기적으로 통합될 때까지 문제가 남아 있습니다. Advisor의 모든 사용자에 대해 10,000자 또는 1000단어당 $0.02에 대한 IBM의 유료 플랜입니다. 그러면 기사가 어떻게 될까요? 비밀이 아니라면 어떻게 하시겠습니까?

 

다음은 작동하는 스크립트입니다.

 //+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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 .wav 의 WebRequest.mq5 스크립트입니다.

스냅샷4

스냅샷5

파일:
WebRequest.zip  5806 kb
 
Alexsandr San :
나는 (.txt 파일의) 보내는 것을 어떻게든 구성하고 (.wav 파일 의) 형식으로 받는 것이 가능하다는 것을 이해합니다

현재로서는 그다지 비용 효율적이지 않습니다. 즉, IBM의 서비스는 WebRequest에서 아직 읽지 않은 파일(조만간 수정되어야 함)을 보내지만, 읽어도 Text to Speech 서비스의 무료 사용은 월 10,000자로 제한됩니다. 즉, 작은 단락을 변환하면 됩니다. 유료 옵션이 있습니다(정말 필요한 사람들을 위한 것입니다). 제한이 없는 무료 TTS(텍스트 음성 변환) 서비스를 찾은 경우 다시 시도해 볼 수 있습니다. 하지만 거의 없다...

우리는 AI 개발자에게 좋은 터미널과 언어에 Text to Speech의 도입에 고무되었지만 시간이 걸릴 것입니다. IMHO, 지금 기다리는 것이 좋습니다 ...

 
Alexsandr San :

스크립트는 일부 result.ogg 파일을 로드합니다.

베타 2472는 이미 사용 가능하며 모든 것이 IBM 서비스와 함께 작동합니다.

이 서비스는 wav가 아닌 ogg 형식의 파일을 제공합니다.

 
google은 월 400만 자(네트워크 처리의 경우 100만 자)를 무료로 사용할 수 있습니다.
 
Renat Fatkhullin :

다음은 작동하는 스크립트입니다.

예! )