и снова dll и маркет - страница 11

 

Файл уже научились загружать через WebRequest ?

осталось изучить PlaySound (вот его возможно имеет смысл в отдельном советнике/сервисе),

а чтобы "Файл должен быть расположен в каталоге каталог_терминала\Sounds или его подкаталоге. Проигрываются только звуковые файлы в формате WAV." заранее сделать ссылку из одного каталога на другой (из Files/Sound в Sound/Files например).

и вуалля - не выходя за возможности MT и без внешних DLL всё должно работать.

 
Nikolai Karetnikov:

и вот еще, в доке по WebRequest указано, что существует 2 варианта этой функции. Первый работает с Content-Type: application/x-www-form-urlencoded, что явно не подходит, т.к. IBM просит "header "Content-Type: application/json" 

Но это пока все, что удалось понять

Зачем Вам этот убогий WebRequest? Уже давно доступны сокетные функции, в том числе и с TLS.
 

вот так интересно получилось 

   string cookie=NULL,headers;
   char   post[],result[];
   string url="https://c.mql5.com/3/321/voice.bat.txt";
//--- для работы с сервером необходимо добавить URL "https://finance.yahoo.com"
//--- в список разрешенных URL (Главное меню->Сервис->Настройки, вкладка "Советники"):
//--- обнуляем код последней ошибки
   ResetLastError();
//--- загрузка html-страницы с Yahoo Finance
   int res=WebRequest("GET",url,cookie,NULL,500,post,0,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("voice.bat",FILE_WRITE|FILE_BIN);
         if(filehandle!=INVALID_HANDLE)

Снимок

Снимок

bat выдаст ошибку - если в bin а потом как то из  bin

Снимок2

 
Serhii Shevchuk:
Зачем Вам этот убогий WebRequest? Уже давно доступны сокетные функции, в том числе и с TLS.

Вы я вижу человек с опытом, поможете написать пример обращения через сокет? 

Документация тут https://cloud.ibm.com/docs/text-to-speech?topic=text-to-speech-usingWebSocket

 instance_id я так, понимаю, равен GR1bb3zVMs9fcNKL6pA9-5zj9ptWliCu6eh9oupUnpZB

Пока курю доку...

 
Реter Konow:
Задача очень сложная, почти невозможная потому что неопределены границы цели. Чего конкретно должен озвучивать советник? Если только цену, то можно интегрировать набор озвученных цифр, которые затем комбинировать. Если нужна опция записывать на микрофон пользовательскую напоминалку, которую советник будет включать в нужный момент, то это не то чтобы невозможно, НО, ОЧЕНЬ сложно. Смысл затрачивать столько энергии на сомнительную фишку почти не вижу.

Сформулируйте более четко, что именно хотите сделать.

задача не очень сложная. По-сути, уже все сделано и советник нормально работает с вызовом DLL, произнося по-английски или по-русски и названия инструментов и их текущие цены, и если потребуется, попадание цены в регион. 

Используются встроенные возможности операционной системы Windows 


С помощью простейшего класса https://www.mql5.com/ru/forum/342293#comment_16626455 можно произносить произвольный текст, даже run-time ошибки или printf выводы, если кому-то это нужно ))))

А реализация с помощью множества wav файлов очень сложна, Вы совершенно правы

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

задача не очень сложная. По-сути, уже все сделано и советник нормально работает с вызовом DLL, произнося по-английски или по-русски и названия инструментов и их текущие цены, и если потребуется, попадание цены в регион. 

Используются встроенные возможности операционной системы Windows 


С помощью простейшего класса https://www.mql5.com/ru/forum/342293#comment_16626455 можно произносить произвольный текст, даже run-time ошибки или printf выводы, если кому-то это нужно ))))

А реализация с помощью множества wav файлов очень сложна, Вы совершенно правы

У вас не сформулированная задача, а следовательно, неясно что нужно решать. Заставить советник говорить что попало? Но, что конкретно он должен говорить? Как Вы прикажите ему читать название символа??? :) Вы не сможете общаться с советником, даже если он формально будет "проговаривать" текст. Не сможете заставить его читать тот текст, который актуален для некого события. Как укажите ему прочитать принты или логи?))
 
Ок, допустим советник будет записывать текст для произнесения в файл и отсылать его через веб-реквест или сокеты на сервер, а тот, подчиняясь, будет его проговоривать. Теоретически возможно, но это непростая задача... 

Примите во внимание временные задержки.
 
Реter Konow:
У вас не сформулированная задача, а следовательно, неясно что нужно решать. Заставить советник говорить что попало? Но, что конкретно он должен говорить? Как Вы прикажите ему читать название символа??? :) Вы не сможете общаться с советником, даже если он формально будет "проговаривать" текст. Не сможете заставить его читать тот текст, который актуален для некого события. Как укажите ему прочитать принты или логи?))

нужно решить задачу трансформации произвольного текста в wav файл без использования DLL вызовов )

Все остальное уже решено

 
Реter Konow:
Ок, допустим советник будет записывать текст для произнесения в файл и отсылать его через веб-реквест или сокеты на сервер, а тот, подчиняясь будет его проговоривать. Теоретически возможно, но это непростая задача...

в файл записывать не надо. Вот здесь 80% уже решено. С помощью curl команды к TTS сервису IBM Watson можем скачать WAV файл. Теперь надо разобраться сопоставить форматы curl команды  и WebRequest метода

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

нужно решить задачу трансформации произвольного текста в wav файл без использования DLL вызовов )

Все остальное уже решено

  Не знаю... это и есть нерешаемая задача... Нужен специальный веб-сервис, который бы принимал от Вас текстовый файл, преобразовывал его в wav, отправлял Вам обратно в папку Sounds и переписывал прежний файл. Или просто, получал и проговаривал без преобразования в .wav
Причина обращения: