não é possível reproduzir um arquivo wav de uma caixa de areia sem uma DLL?
de ajuda
Por exemplo, se o arquivo de áudio Demo.wav estiver localizado na pasta Terminal_data_directory\MQL5\Files, então a chamada PlaySound() deve ser escrita desta forma:
//--- reproduzir arquivo de som Demo.wav do terminal_data_directory\MQL5 File PlaySound("Files.wav");
O problema é que o próprio motor do playound é defeituoso. ele não combina os sons, mas deixa de tocar o anterior assim que chega um novo comando.
Há uma exigência no mercado de que o produto deve funcionar fora da caixa e não depender de módulos de terceiros. mas é possível fazer um movimento radical - fazer uma solução de caixa na muleta playound e se você tiver algum módulo, por exemplo no kodobase, usar uma solução normal através do motor eólico.
Entendo que oexemplo_id é GR1bb3zVMs9fcNKL6pA9-5zj9ptWliCu6eh9oupUnpZB
Enquanto leio o documento...
O que exatamente sua pergunta está falhando? Há bons exemplos na documentação.
Não tenho tempo agora, e é inútil.
Com relação ao seu link - se você não puder usar o WebSocket - é melhor não usar, você economizará muito tempo (se você não tiver experiência com ele). Existem outras opções além do WebSocket.
Por exemplo, se o arquivo de som Demo.wav estiver localizado na pasta Terminal_data_directory\MQL5\Files, a chamada PlaySound() deve ser escrita desta forma:
//--- reproduzir arquivo de som Demo.wav do terminal_data_directory\MQL5 File PlaySound("Files.wav");
O problema é que o próprio motor do playound é defeituoso. ele não combina os sons, mas deixa de tocar o anterior assim que chega um novo comando.
o mercado exige que o produto funcione fora da caixa e não dependa de módulos de terceiros. mas é possível fazer um movimento radical - fazer uma solução de caixa na muleta playound e se você tiver algum módulo, por exemplo no kodobase, use uma solução normal através do motor de vento. que eu entendo que pode fazer reconhecimento de texto também.
é exatamente isso que eu quero dizer! )
Sim, de duas maneiras.
O primeiro caminho é o PlaySound e as pausas baseadas na velocidade de pronúncia. Mas encontrei isto e na fase de chamar os recursos nativos do Windows TTS, quando a segunda frase entra em um fluxo ocupado, obtemos um erro de tempo de execução. Portanto, há um atraso na classe com base na velocidade de pronúncia de 100 caracteres por minuto. Em princípio, saímos desta situação.
Método 2 - Gerar arquivo de teste por código fechado e reproduzi-lo por código aberto com DLLs habilitadas
Por que escrever algo na pasta desnecessariamente? PlaySound pode tocar a partir de recursos, veja "Utilizando Recursos" no link
P.S. Eu mesmo ainda não tentei, mas desde que está escrito na documentação, deve ser possível.
Bem, o computador quer uma solução universal onde não precisamos integrar recursos sólidos no Expert Advisor. Ele quer projetar um sistema de interação entre o Expert Advisor e o servidor, no qual o primeiro cria um arquivo de texto de palavras que AGORA precisa ser dito pelo usuário, e o servidor as converte para .wav e as envia de volta para o Expert Advisor. Em seguida, o consultor especializado, sem saber, escreve o arquivo no lugar do arquivo anterior (com a locução anterior do servidor) e chama o PlaySound para tocar a nova locução.
Реter Konow: Bem, a TC quer uma solução universal, onde não há necessidade de integrar previamente recursos sólidos ao Expert Advisor. Ele quer projetar um sistema de interação entre o Expert Advisor e o servidor, no qual o primeiro cria um arquivo de texto de palavras que AGORA deve ser dito pelo usuário, e o servidor as converte para .wav e as envia de volta para o Expert Advisor. Em seguida, o consultor especializado, sem saber, escreve o arquivo no lugar do arquivo anterior (com a locução anterior do servidor) e chama o PlaySound para tocar a nova locução.
Criar um recurso a partir dos dados recebidos. E depois tocar com PlaySound. Mas não encontrei exatamente essa conexão em exemplos (não tenho certeza de que funcionará). Por isso, apaguei a mensagem anterior.
[in] Относительный путь к файлу, содержащему данные для ресурса. Если путь начинается с обратной косой черты "\" (пишется "\\"), то файл ищется относительно папки Если второй вариант функции вызывается для...
Criar um recurso a partir dos dados recebidos. E depois tocar com PlaySound. Mas não encontrei exatamente tal link nos exemplos (não tenho certeza se vai funcionar). Por isso, apaguei a mensagem anterior.
Idéia legal. Pode tentar, embora não tenha certeza))))
O que exatamente sua pergunta não está funcionando? Há bons exemplos na documentação .
Eu não tenho tempo para descobrir o protocolo falador agora, e é inútil.
Com relação ao seu link - se você não puder usar o WebSocket - é melhor não usar, você economizará muito tempo (se não tiver experiência com ele). Existem outras opções além do WebSocket.
aqui está o que falha https://www.mql5.com/ru/forum/342293/page12#comment_16633648
O arquivo é criado, mas vazio. Seu nome
é diferente do arquivo que é baixado pelo comando curl
Dica que o código que você escreveu
//+------------------------------------------------------------------+//| 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 |//+------------------------------------------------------------------+voidOnStart()
{
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 Financeint 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);
}
elsePrint("Ошибка в FileOpen. Код ошибки =",GetLastError());
}
elsePrintFormat("Ошибка загрузки '%s', код %d",url,res);
}
}
//+------------------------------------------------------------------+
não forma corretamente a sintaxe do WebRequest.
Ou seja, não faz com que o WebRequest faça o que faz o encaracolamento
Se o arquivo de som puder ser reproduzido da pasta Arquivos, onde é pré-gravado pela EA, então a solução do problema será realista se o arquivo de som resultante for coerente.
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
não é possível reproduzir um arquivo wav de uma caixa de areia sem uma DLL?
de ajuda
Por exemplo, se o arquivo de áudio Demo.wav estiver localizado na pasta Terminal_data_directory\MQL5\Files, então a chamada PlaySound() deve ser escrita desta forma:
//--- reproduzir arquivo de som Demo.wav do terminal_data_directory\MQL5 File
PlaySound("Files.wav");
O problema é que o próprio motor do playound é defeituoso. ele não combina os sons, mas deixa de tocar o anterior assim que chega um novo comando.
Há uma exigência no mercado de que o produto deve funcionar fora da caixa e não depender de módulos de terceiros. mas é possível fazer um movimento radical - fazer uma solução de caixa na muleta playound e se você tiver algum módulo, por exemplo no kodobase, usar uma solução normal através do motor eólico.
Vejo que você é uma pessoa experiente, você pode me ajudar a escrever um exemplo de referência de soquete?
A documentação está aquihttps://cloud.ibm.com/docs/text-to-speech?topic=text-to-speech-usingWebSocket
Entendo que oexemplo_id é GR1bb3zVMs9fcNKL6pA9-5zj9ptWliCu6eh9oupUnpZB
Enquanto leio o documento...
O que exatamente sua pergunta está falhando? Há bons exemplos na documentação.
Não tenho tempo agora, e é inútil.
Com relação ao seu link - se você não puder usar o WebSocket - é melhor não usar, você economizará muito tempo (se você não tiver experiência com ele). Existem outras opções além do WebSocket.
de ajuda
Por exemplo, se o arquivo de som Demo.wav estiver localizado na pasta Terminal_data_directory\MQL5\Files, a chamada PlaySound() deve ser escrita desta forma:
//--- reproduzir arquivo de som Demo.wav do terminal_data_directory\MQL5 File
PlaySound("Files.wav");
O problema é que o próprio motor do playound é defeituoso. ele não combina os sons, mas deixa de tocar o anterior assim que chega um novo comando.
o mercado exige que o produto funcione fora da caixa e não dependa de módulos de terceiros. mas é possível fazer um movimento radical - fazer uma solução de caixa na muleta playound e se você tiver algum módulo, por exemplo no kodobase, use uma solução normal através do motor de vento. que eu entendo que pode fazer reconhecimento de texto também.
é exatamente isso que eu quero dizer! )
Sim, de duas maneiras.
O primeiro caminho é o PlaySound e as pausas baseadas na velocidade de pronúncia. Mas encontrei isto e na fase de chamar os recursos nativos do Windows TTS, quando a segunda frase entra em um fluxo ocupado, obtemos um erro de tempo de execução. Portanto, há um atraso na classe com base na velocidade de pronúncia de 100 caracteres por minuto. Em princípio, saímos desta situação.
Método 2 - Gerar arquivo de teste por código fechado e reproduzi-lo por código aberto com DLLs habilitadas
Por que escrever algo na pasta desnecessariamente? PlaySound pode tocar a partir de recursos, veja "Utilizando Recursos" no link
P.S. Eu mesmo ainda não tentei, mas desde que está escrito na documentação, deve ser possível.
Bem, a TC quer uma solução universal, onde não há necessidade de integrar previamente recursos sólidos ao Expert Advisor. Ele quer projetar um sistema de interação entre o Expert Advisor e o servidor, no qual o primeiro cria um arquivo de texto de palavras que AGORA deve ser dito pelo usuário, e o servidor as converte para .wav e as envia de volta para o Expert Advisor. Em seguida, o consultor especializado, sem saber, escreve o arquivo no lugar do arquivo anterior (com a locução anterior do servidor) e chama o PlaySound para tocar a nova locução.
Eu quis dizer usar ResourceCreate
Criar um recurso a partir dos dados recebidos. E depois tocar com PlaySound. Mas não encontrei exatamente essa conexão em exemplos (não tenho certeza de que funcionará). Por isso, apaguei a mensagem anterior.
Eu quis dizer usar ResourceCreate
Criar um recurso a partir dos dados recebidos. E depois tocar com PlaySound. Mas não encontrei exatamente tal link nos exemplos (não tenho certeza se vai funcionar). Por isso, apaguei a mensagem anterior.
O que exatamente sua pergunta não está funcionando? Há bons exemplos na documentação .
Eu não tenho tempo para descobrir o protocolo falador agora, e é inútil.
Com relação ao seu link - se você não puder usar o WebSocket - é melhor não usar, você economizará muito tempo (se não tiver experiência com ele). Existem outras opções além do WebSocket.
aqui está o que falha https://www.mql5.com/ru/forum/342293/page12#comment_16633648
O arquivo é criado, mas vazio. Seu nome
é diferente do arquivo que é baixado pelo comando curl
Dica que o código que você escreveu
não forma corretamente a sintaxe do WebRequest.
Ou seja, não faz com que o WebRequest faça o que faz o encaracolamento
aqui está o que não funciona https://www.mql5.com/ru/forum/342293/page12#comment_16633648
Posso olhar para ele, mas não antes de amanhã à noite. Se você ainda não tiver resolvido sozinho até lá.
aqui está o que não está funcionando https://www.mql5.com/ru/forum/342293/page12#comment_16633648
O arquivo é criado, mas está vazio. Seu nome
é diferente do arquivo baixado pelo comando curl
Este tipo de dicas de que o código que você escreveu
não forma a sintaxe WebRequest corretamente.
Isto é, você não pode fazer com que a WebRequest faça o que faz o encaracolamento
e você não vai :-)
por que você passa as opções de comando de ondulação nos cabeçalhos HTTP?
bem, pelo menos leia alguns livros, veja alguns exemplos... caso contrário, todos nós realmente escreveremos um artigo para você