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

 
nkaretnikov:

DLLを使わずにサンドボックスからwavファイルを再生することはできないのでしょうか?

ヘルプから

例えば、オーディオファイルDemo.wavがterminal_data_directoryのMQL5Filesフォルダにある場合、PlaySound() はこのように記述されます。

//--- play sound file Demo.wav from terminal_data_directoryMQL5Files
PlaySound("¦Demo.wav")

問題は、プレイサウンドエンジン自体に欠陥があることです。サウンドを結合するのではなく、新しいコマンドが届くとすぐに前のサウンドの再生を停止してしまうのです。

しかし、抜本的な解決策を講じることは可能です。例えば、プレイサウンドのクラッチでボックスソリューションを作り、コドベースのようなモジュールがあれば、ウインドエンジンを通じて通常のソリューションを使用することができるのです。

 
nkaretnikov:

あなたは経験豊富な方だと思いますが、ソケットのリファレンス例を書くのを手伝ってもらえますか?

ドキュメントはこちらhttps://cloud.ibm.com/docs/text-to-speech?topic=text-to-speech-usingWebSocket

instance_id は GR1bb3zVMs9fcNKL6pA9-5zj9ptWliCu6eh9oupUnpZB であることがわかりました。

ドキュメントを読みながら・・・。

クエリの失敗とは具体的にどのようなものですか?ドキュメントに 良い例があります。

今は時間がないし、無駄なことだ。

あなたのリンクについて - WebSocketを使用できない場合 - 使用しない方が良い、あなたは多くの時間を節約することができます(あなたがそれを経験したことがない場合)。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 にある場合、PlaySound() はこのように記述します。

//--- play sound file Demo.wav from terminal_data_directoryMQL5Files
PlaySound("¦Demo.wav")

問題は、プレイサウンドエンジン自体に欠陥があることです。サウンドを結合するのではなく、新しいコマンドが届くとすぐに前のサウンドの再生を停止してしまうのです。

しかし、抜本的な改革を行い、プレイサウンドクラッチでボックスソリューションを作り、例えばコドベースのようなモジュールがあれば、ウィンドエンジンで通常のソリューションを使うことが可能です。

そのとおりです。)

はい、2通りです。

1つ目の方法はPlaySoundで、発音の速さに応じたポーズをかける。しかし、これに遭遇し、WindowsのネイティブTTS機能を呼び出す段階で、2つ目のフレーズがビジーストリームになると、ランタイムエラーが発生するんです。そのため、1分間に100文字という発音の速さを基準にすると、授業に遅れが出てしまいます。原則的には、この状況から脱却する。

方法2 - クローズドコードでテストファイルを生成し、有効なDLLを使用してオープンコードで再生する。

 
Serhii Shevchuk:

なぜフォルダにむやみに何かを書き込むのか?PlaySoundはリソースからの再生が可能です。リンク 先の「リソースの使用」をご覧ください。

追伸:私自身は試していませんが、ドキュメントに書かれているのですから、可能なのでしょう。

さて、コンピュータは、サウンドリソースをExpert Advisorに統合する必要がない、普遍的なソリューションを望んでいます。Expert Advisorとサーバーの間で、NOWがユーザーに言わせる必要のある言葉をテキストファイルで作成し、サーバーがそれを.wavに変換してExpert Advisorに送り返すという対話のシステムを設計したいそうです。次に、Expert Advisorは、知らないうちに、前のファイル(サーバーから前のナレーションが入ったもの)の代わりにファイルを書き込み、PlaySoundを呼び出して新しいナレーションを再生します。

このような仕組みはうまくいくはずがありません。
 
Реter Konow:
TCは、Expert Advisorに音源をあらかじめ組み込む必要がない、普遍的なソリューションを求めているのです。Expert Advisorとサーバーの間で、NOWが言うべき言葉をテキストファイルで作成し、サーバーがそれを.wavに変換してExpert Advisorに送り返すという対話システムを設計したいそうです。次に、Expert Advisorは、知らないうちに、前のファイル(サーバーから前のナレーションが入ったもの)の代わりにファイルを書き込み、PlaySoundを呼び出して新しいナレーションを再生します。

このような仕組みはうまくいくはずがありません。

ResourceCreateを 使用するという意味です。

受信したデータからリソースを作成する。そして、PlaySoundで再生する。しかし、そのような接続を正確に行う例は見当たりません(うまくいくかどうかわかりません)。 そのため、前のメッセージは削除しました。

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

ResourceCreateを 使用するという意味です。

受信したデータからリソースを作成する。そして、PlaySoundで再生する。しかし、私は例の中でまさにそのようなリンクを見つけられませんでした(それがうまくいくかどうかわからない)。 だから、前のメッセージを削除しました。

クールなアイデアです。試してみることができます、自信はありませんが)))
 
Serhii Shevchuk:

具体的にどのようなクエリーが効かないのでしょうか?ドキュメントに 良い例があります。

今はトーカープロトコルを理解する時間もないし、無駄なんだけどね。

あなたのリンクについて - あなたは、WebSocketを使用することはできません - しない方が良い、あなたは多くの時間を節約することができます(それの経験がない場合)。WebSocket以外にも選択肢はあります。

以下は失敗例です https://www.mql5.com/ru/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 の構文を正しく形成しません。

つまり、WebRequestにcurlが行うことを行わせることに失敗しているのです

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

以下は、動作しないものです https://www.mql5.com/ru/forum/342293/page12#comment_16633648

......

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

 
EAであらかじめ録音したFilesフォルダから再生して、出来上がったサウンドファイルにまとまりがあれば、問題解決は現実的なものになります。
 
Nikolai Karetnikov:

以下は、動作していないものです https://www.mql5.com/ru/forum/342293/page12#comment_16633648

ファイルは作成されますが、中身は空です。名称



は、curlコマンドでダウンロードしたファイルとは異なります。



このようなヒントが、あなたが書いたコードが


は、WebRequest の構文を正しく形成しません。

つまり、WebRequestにcurlと同じことをさせることはできません。

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

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

せめて本を読んだり、実例に目を通したりしてください。