そしてまた、DellとMarket - ページ 14

 
Реter Konow:
Expert Advisor があらかじめ録音している Files フォルダからサウンドファイルを再生することができ、その結果、サウンドファイルが一体となれば、問題の解決は本物であると言えます。
いいえ!ドキュメントには、サウンドファイルはSoundsフォルダーに保存するように書かれています。
https://www.mql5.com/ru/docs/common/playsound

これはトピックとして重要な問題です。Filesフォルダから再生されない場合は、PlaySoundは 論外です。そうすれば、サーバーから何かを返す必要はない。なぜ?EAの内部リソースでPlaySoundが突然動作しなくなるのであれば話は別ですが、それはとても疑問です...。
 
誰かFilesフォルダーから.wavを実行してみてください。効くのかなぁ(笑))
 
//+------------------------------------------------------------------+
//|                                                       Sounds.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()
  {
//---
   PlaySound("\\Files\\Sounds\\alert.wav");
   Sleep(1*1000);
   PlaySound("\\Files\\Sounds\\request.wav");
   Sleep(1*1000);
   PlaySound("\\Files\\Sounds\\email.wav");
  }
//+------------------------------------------------------------------+
Реter Konow
:

誰かFilesフォルダの.wavを実行してみてください。効くのかなぁ(笑))

yes it works フォルダ全体をコピーしました。

C:\Users\San\AppData\Roaming\MetaQuotes\Terminal\3 DE8A6E768D9369994F541727D733DE8\MQL5\Files\Sounds\
 
Alexsandr San:

yes it works フォルダ全体をコピーしました。

今、それが、希望です))
 
Реter Konow:
今、それが希望です))

曲の再確認と再実行

   Sleep(1*1000);
   PlaySound("\\Files\\Sounds\\Kazka.wav");
https://yadi.sk/d/EGsTJGYBmDFnGg
 
Alexsandr San:

曲の再確認をしたところ

https://yadi.sk/d/EGsTJGYBmDFnGg
まあ、そうなると、必ずしもドキュメントを信じる必要はないんですけどね)))

もし、TCがサーバーから有効なオーディオファイルを受信し、一箇所で再録音してその場で再生すれば、ユーザーへのテキストメッセージのナレーションに対するユニバーサルソリューションのタスクは解決されるでしょう。

ZS. PlaySoundは、EAが作成した内部リソースの音も再生できるのでしょうか?そうすれば、Filesに書き込む必要はありません。すぐにリソースに保存し、再生する。
 
Реter Konow:
まあ、必ずしもドキュメントを鵜呑みにする必要はないのですが)))

あとは、TCがサーバーから有効なサウンドファイルを受け取り、それを一カ所にまとめて録音し直し、その場で再生してくれれば、ユーザーへのテキストメッセージを音声化するユニバーサルソリューションの課題は解決します。

ZS. PlaySoundは、EAが作成した内部リソースのサウンドを再生できるのでは?

私は、私のExpert Advisorで、知らない - いくつかのアクションがある場合、それが再生されます。

                     ObjectsDeleteAll(0,InpObjDownNameG);
                     IndicatorDelete();
                     PlaySound("ok.wav");
                     if(InpChartInd && Obj_SELLChartInd())
                        return;

もちろん、独自のメロディやサウンドも

 
Serhii Shevchuk:

見てみることはできますが、明日の夕方までは無理です。それまでに自分で解決していないのなら

マキシム・クズネツォフ

とはならないでしょう:-)

なぜcurlコマンドのオプションをHTTPヘッダーに記述するのですか?

せめて本を読んだり、実例に目を通したりしたらどうだ。さもなければ、みんなで記事を書くことになる

バイナリファイルに出力するサンプルはどこで手に入りますか?))

それを理解するために、私はURLコマンドの構文自体を最小化しました。


curl -X GET -u ^
apikey:GR1bb3zVMs9fcNKL6pA9-5 zj9ptWliCu6eh9oupUnpZB ^
--output hello_world.wav ^
https://api.eu-gb.text-to-speech.watson.cloud.ibm.com/instances/9886a3ce-5734-455f-8f78-7a56381da686/v1/synthesize?text=TEST

TESTという単語が入ったwavファイルをダウンロードするのに使っています。

を選択し、オプションを削除します。

//+------------------------------------------------------------------+
//|                                                   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 = "-u apikey:GR1bb3zVMs9fcNKL6pA9-5zj9ptWliCu6eh9oupUnpZB --output hello_world.wav";
   string url="https://api.eu-gb.text-to-speech.watson.cloud.ibm.com/instances/9886a3ce-5734-455f-8f78-7a56381da686/v1/synthesize?text=TEST";
   ResetLastError();
   int res = WebRequest("GET",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);
     }
  }
//+------------------------------------------------------------------+


のヘッダには認可オプション -u があり、その後ろでサーバーは apikey を待ちます。意味があるように見えるが、構文がまだ何か間違っている

code result -"Webrequest4Voice(EURCHF,D1) Error loading 'https://api.eu-gb.text-to-speech.watson.cloud.ibm.com/instances/9886a3ce-5734-455f-8f78-7a56381da686/v1/synthesize?text=TEST', code 401".

ヒントを教えてください。))

 
Nikolai Karetnikov:

バイナリファイルに出力するサンプルはどこで手に入りますか?))

それを理解するために、私はURLコマンドの構文自体を最小化しました。


TESTという文字が入ったwavファイルをダウンロードする

を選択し、オプションを削除します。


をヘッダーに追加すると、サーバーがapikeyを待つための認証オプション-uが追加されます。意味があるように見えるが、構文がまだ何か間違っている

code result -"Webrequest4Voice(EURCHF,D1) Error loading 'https://api.eu-gb.text-to-speech.watson.cloud.ibm.com/instances/9886a3ce-5734-455f-8f78-7a56381da686/v1/synthesize?text=TEST', code 401".

ヒントを教えてください。))

401エラーとはどういう意味ですか?
 

HTTPリクエストをcurlのオプションからWebRequestの パラメータに変換するには

1. 一般に、HTTPがどのように構成されているかは、wikipediaを見てください。

2. Curlのドキュメントで、オプションの意味と使用理由を確認する。

3. WebRequestのヘルプを読み、このスレッドでも多くの例を見ることができます。

4.自分が何をしたかを意識してコードを書くこと :-) 何が、なぜ、なぜ使われるのかを考えること。

あなたは明らかに4点すべてを期待していますね。週末で時間がなく、アイデアがたくさんあるのはわかりますが。迅速でなければならない。

でも、やっぱり自分でやるしかない。