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

 
nkaretnikov :

DLL 없이 샌드박스에서 wav 파일을 재생하는 것은 불가능합니까?

도움에서

예를 들어, 사운드 파일 Demo.wav가 terminal_data_directory\MQL5\Files 폴더에 있는 경우 PlaySound()에 대한 호출 은 다음과 같이 작성되어야 합니다.

//--- terminal_data_directory\MQL5\Files\ 폴더에서 Demo.wav 사운드 파일 재생
    PlaySound ( "\\Files\\Demo.wav" );

문제는 playsound 엔진 자체에 결함이 있다는 것입니다. 그는 소리를 결합하지 않지만 새 명령이 도착하는 즉시 이전 소리 재생을 중지합니다.

시장에는 제품이 타사 모듈에 의존하지 않고 즉시 사용할 수 있어야 한다는 요구 사항이 있습니다. 그러나 기사의 움직임을 만들 수 있습니다. playsound 목발에 상자형 솔루션을 만들고, 예를 들어 코드 기반에 배치된 일부 모듈이 있는 경우 Windows 엔진을 통해 일반 솔루션을 사용합니다. 내가 이해하고 텍스트 인식도 방법을 알고 있습니다.

 
nkaretnikov :

당신, 경험이 있는 사람을 보니 소켓을 통해 액세스하는 예를 작성하는 데 도움을 줄 수 있습니까?

여기 문서 https://cloud.ibm.com/docs/text-to-speech?topic=text-to-speech-usingWebSocket

내가 이해하는 instance_id 는 GR1bb3zVMs9fcNKL6pA9-5zj9ptWliCu6eh9oupUnpZB와 같습니다.

담배를 피우면서...

요청에 대해 정확히 무엇이 작동하지 않습니까? 문서 에는 좋은 예가 있습니다.

이제 화자 프로토콜을 다룰 시간이 없으며 쓸모가 없습니다.

링크에 관해서는 - WebSocket을 사용할 수 없다면 - 사용하지 않는 것이 좋습니다. (경험이 없는 경우) 많은 시간을 절약하십시오. 웹 소켓 외에 다른 옵션이 있습니다.

Документация по MQL5: Сетевые функции / SocketCreate
Документация по MQL5: Сетевые функции / SocketCreate
  • www.mql5.com
//|                                                SocketExample.mq5 | //|                        Copyright 2018, MetaQuotes Software Corp. | //|                                             https://www.mql5.com | //| Отправка команды на сервер                                       |...
 
Andrei Trukhanovich :

도움에서

예를 들어, 사운드 파일 Demo.wav가 terminal_data_directory\MQL5\Files 폴더에 있는 경우 PlaySound()에 대한 호출 은 다음과 같이 작성되어야 합니다.

//--- terminal_data_directory\MQL5\Files\ 폴더에서 Demo.wav 사운드 파일 재생
    PlaySound ( "\\Files\\Demo.wav" );

문제는 playsound 엔진 자체에 결함이 있다는 것입니다. 그는 소리를 결합하지 않지만 새 명령이 도착하는 즉시 이전 소리 재생을 중지합니다.

시장에는 제품이 타사 모듈에 의존하지 않고 즉시 사용할 수 있어야 한다는 요구 사항이 있습니다. 그러나 기사의 움직임을 만들 수 있습니다. playsound 목발에 박스형 솔루션을 만들고, 예를 들어 코드베이스에 배치된 일부 모듈이 있는 경우 Windows 엔진을 통해 일반 솔루션을 사용합니다. 내가 이해하고 텍스트 인식도 가능합니다.

여기 나는 거의 동일합니다! )

네, 2가지 방법입니다.

첫 번째 방법 - PlaySound 및 발음 속도에 따라 일시 중지합니다. 하지만 네이티브 Windows TTS 기능을 호출하는 단계에서 두 번째 구문이 사용 중인 스레드에 들어갈 때 런타임 오류가 발생하기도 했습니다. 따라서 분당 100자 재생속도 기준으로 수업에 딜레이가 있습니다. 기본적으로 우리는 상황에서 벗어나

두 번째 방법 - 닫힌 코드로 테스트 파일을 만들고 DLL이 허용된 공개 코드로 재생

 
Serhii Shevchuk :

왜 다시 폴더에 무언가를 씁니까? PlaySound는 리소스에서 재생할 수 있습니다. 링크 에서 "리소스 사용량" 단락을 참조하세요.

추신: 제가 직접 해보지는 않았지만 설명서에 나와있기 때문에 할 수 있다는 뜻입니다.

따라서 TS는 전문가 고문에 사운드 리소스를 사전 통합할 필요가 없는 보편적인 솔루션을 원합니다. 그는 고문과 서버 간의 상호 작용 시스템을 설계하려고 합니다. 첫 번째는 지금 사용자에게 말해야 하는 단어로 텍스트 파일을 형성하고 서버는 이를 .wav로 변환하여 다시 사용자에게 보냅니다. 고문. 또한, 어드바이저는 알 수 없는 방식으로 이전 파일의 위치에 파일을 쓰고(이전 음성은 서버에서 작동) PlaySound를 호출하여 새 음성을 재생합니다.

그러한 계획은 작동할 수 없습니다.
 
Реter Konow :
따라서 TS는 전문가 고문에 사운드 리소스를 사전 통합할 필요가 없는 보편적인 솔루션을 원합니다. 그는 고문과 서버 간의 상호 작용 시스템을 설계하려고 합니다. 첫 번째 것은 지금 사용자에게 말해야 하는 단어로 텍스트 파일을 형성하고 서버는 이를 .wav로 변환하여 다시 사용자에게 보냅니다. 고문. 또한, 어드바이저는 알 수 없는 방식으로 이전 파일의 위치에 파일을 쓰고(이전 음성은 서버에서 작동) PlaySound를 호출하여 새 음성을 재생합니다.

그러한 계획은 작동할 수 없습니다.

ResourceCreate 를 사용하는 것을 의미했습니다.

수신된 데이터에서 리소스를 생성합니다. 그런 다음 PlaySound로 재생합니다. 하지만 예제에서 그런 무리를 찾지는 못했습니다(작동할지 확신할 수 없음). 그래서 이전 글을 삭제했습니다.

Документация по MQL5: Общие функции / ResourceCreate
Документация по MQL5: Общие функции / ResourceCreate
  • www.mql5.com
[in]  Относительный путь к файлу, содержащему данные для ресурса. Если путь начинается с обратной косой черты "\" (пишется "\\"), то файл ищется относительно папки Если второй вариант функции вызывается для...
 
Serhii Shevchuk :

ResourceCreate 를 사용하는 것을 의미했습니다.

수신된 데이터에서 리소스를 생성합니다. 그런 다음 PlaySound로 재생합니다. 하지만 예제에서 그런 무리를 찾지는 못했습니다(작동할지 확신할 수 없음). 그래서 이전 글을 삭제했습니다.

멋진 아이디어입니다. 확실하지 않지만 시도해 볼 수 있습니다.)))
 
Serhii Shevchuk :

요청에 대해 정확히 무엇이 작동하지 않습니까? 문서 에는 좋은 예가 있습니다.

이제 화자 프로토콜을 다룰 시간이 없으며 쓸모가 없습니다.

링크에 관해서는 - WebSocket을 사용할 수 없다면 - 사용하지 않는 것이 좋습니다. (경험이 없는 경우) 많은 시간을 절약하십시오. 웹 소켓 외에 다른 옵션이 있습니다.

작동하지 않는 것은 다음과 같습니다. https://www.mql5.com/en/forum/342293/page12#comment_16633648

파일이 생성되었지만 비어 있습니다. 그의 이름



curl 명령으로 다운로드한 파일과 다름



작성된 코드가

 //+------------------------------------------------------------------+
//|                                                   WebRequest.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   string cookie= NULL ,headers;
   char    post[],result[];
   char cost_char_data[];
   string   result_headers;
   
   headers = headers + "-u apikey:GR1bb3zVMs9fcNKL6pA9-5zj9ptWliCu6eh9oupUnpZB" ;
   headers = headers + " --header \"Content-Type: application/json\"" ;
   headers = headers + " --header \"Accept: audio/wav\"" ;
   headers = headers + " --data \"{\"text\":\"hello world\"}\"" ;
   headers = headers + " --output hello_world.wav" ;
//output hello_world.wav ^

   string url= "https://api.eu-gb.text-to-speech.watson.cloud.ibm.com" ;
//--- для работы с сервером необходимо добавить URL "https://finance.yahoo.com"
//--- в список разрешенных URL (Главное меню->Сервис->Настройки, вкладка "Советники"):
//--- обнуляем код последней ошибки
   ResetLastError ();
//--- загрузка html-страницы с Yahoo Finance
   int res = WebRequest ( "POST" ,url,headers, 1000 ,cost_char_data,result,result_headers);
   if (res==- 1 )
     {
       Print ( "Ошибка в WebRequest. Код ошибки  =" , GetLastError ());
       //--- возможно, URL отсутствует в списке, выводим сообщение о необходимости его добавления
       MessageBox ( "Необходимо добавить адрес '" +url+ "' в список разрешенных URL во вкладке 'Советники'" , "Ошибка" , MB_ICONINFORMATION );
     }
   else
     {
       if (res== 200 )
        {
         //--- успешная загрузка
         PrintFormat ( "Файл успешно загружен, размер %d байт." , ArraySize (result));
         //PrintFormat("Заголовки сервера: %s",headers);
         //--- сохраняем данные в файл
         int filehandle= FileOpen ( "output hello_world.wav" , 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,res);
     }
  }
//+------------------------------------------------------------------+


WebRequest 구문을 잘못 형성합니다.

저것들. curl이 수행하는 작업을 WebRequest에서 수행할 수 없습니다.

и снова dll и маркет
и снова dll и маркет
  • 2020.05.31
  • www.mql5.com
День добрый! Правило №1 dll на Маркете запрещен...
 
Nikolai Karetnikov :

작동하지 않는 것은 다음과 같습니다. https://www.mql5.com/en/forum/342293/page12#comment_16633648

.....

볼 수는 있지만 내일 저녁 전에는 볼 수 없습니다. 그때까지 알아내지 못한다면.

 
Expert Advisor가 이전에 녹음한 Files 폴더에서 사운드 파일을 재생할 수 있는 경우 수신된 사운드 파일이 완료되어야 문제 해결이 현실이 됩니다.
 
Nikolai Karetnikov :

작동하지 않는 것은 다음과 같습니다. https://www.mql5.com/en/forum/342293/page12#comment_16633648

파일이 생성되었지만 비어 있습니다. 그의 이름



curl 명령으로 다운로드한 파일과 다름



작성된 코드가


WebRequest 구문을 잘못 형성합니다.

저것들. curl이 수행하는 작업을 WebRequest에서 수행할 수 없습니다.

작동하지 않습니다 :-)

왜 HTTP 헤더에 curl 명령 옵션을 전달합니까 ???

젠장, 글쎄, 적어도 책을 읽고, 예를 살펴보십시오 ... 그렇지 않으면 모든 카갈과 함께 기사를 작성합니다.