![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
ist es nicht möglich, eine wav-Datei aus einer Sandbox ohne DLL abzuspielen?
von Hilfe
Wenn sich beispielsweise die Audiodatei Demo.wav im Ordner terminal_data_directory\MQL5\Files befindet, sollte der PlaySound()-Aufruf auf diese Weise geschrieben werden:
//--- Abspielen der Sounddatei Demo.wav aus dem terminal_data_directory\MQL5\Files\
PlaySound("\\\\Files\\\Demo.wav");
Das Problem ist, dass die Playsound-Engine selbst fehlerhaft ist. Sie kombiniert die Sounds nicht, sondern hört auf, den vorherigen abzuspielen, sobald ein neuer Befehl eintrifft.
Auf dem Markt gibt es eine Anforderung, dass das Produkt sollte out of the box zu arbeiten und nicht auf Module von Drittanbietern abhängen. aber es ist möglich, einen radikalen Schritt zu machen - eine Box-Lösung auf Playsound Krücke und in Anwesenheit von einigen Modulen zu machen, zum Beispiel in kodobase gebucht, verwenden Sie eine normale Lösung durch die Win-Engine. die ich verstehe und Texterkennung ist auch in der Lage.
Ich sehe, Sie sind eine erfahrene Person, können Sie mir helfen, ein Beispiel für eine Socket-Referenz zu schreiben?
Die Dokumentation finden Sie hierhttps://cloud.ibm.com/docs/text-to-speech?topic=text-to-speech-usingWebSocket
Soweit ich weiß, lautet dieinstance_id GR1bb3zVMs9fcNKL6pA9-5zj9ptWliCu6eh9oupUnpZB
Während ich das Dokument lese...
Woran genau scheitert Ihre Anfrage? In der Dokumentation finden sich gute Beispiele.
Ich habe jetzt keine Zeit, und es ist sinnlos.
In Bezug auf Ihren Link - wenn Sie nicht WebSocket verwenden können - besser nicht zu verwenden, werden Sie eine Menge Zeit sparen (wenn Sie keine Erfahrung mit ihm haben). Neben WebSocket gibt es noch andere Optionen.
von Hilfe
Wenn sich beispielsweise die Sounddatei Demo.wav im Ordner terminal_data_directory\MQL5\Files befindet, sollte der PlaySound()-Aufruf auf diese Weise geschrieben werden:
//--- Abspielen der Sounddatei Demo.wav aus dem terminal_data_directory\MQL5\Files\
PlaySound("\\\\Files\\\Demo.wav");
Das Problem ist, dass die Playsound-Engine selbst fehlerhaft ist. Sie kombiniert die Sounds nicht, sondern hört auf, den vorherigen abzuspielen, sobald ein neuer Befehl eintrifft.
Der Markt verlangt, dass das Produkt sofort funktioniert und nicht von Modulen von Drittanbietern abhängt. Aber es ist möglich, einen radikalen Schritt zu machen und eine Box-Lösung auf der Grundlage von Playsound zu entwickeln, und wenn Sie ein Modul haben, zum Beispiel in kodobase, verwenden Sie eine normale Lösung durch die Wind-Engine, die meines Wissens auch Texterkennung kann.
Das ist genau mein Punkt! )
Ja, 2 Möglichkeiten.
Die 1. Möglichkeit ist PlaySound und macht Pausen auf der Grundlage der Aussprachegeschwindigkeit. Aber ich bin darauf gestoßen und in der Phase des Aufrufs der nativen Windows-TTS-Funktionen, wenn die zweite Phrase in einen belegten Stream gelangt, erhalten wir einen Laufzeitfehler. Daher gibt es eine Verzögerung in der Klasse, die auf der Aussprachegeschwindigkeit von 100 Zeichen pro Minute basiert. Im Grunde genommen kommen wir aus dieser Situation heraus.
Methode 2 - Erzeugen einer Testdatei durch geschlossenen Code und Abspielen durch offenen Code mit aktivierten DLLs
Warum unnötig etwas in den Ordner schreiben? PlaySound kann von Ressourcen abspielen, siehe "Ressourcen verwenden" im Link
P.S. Ich habe es nicht selbst ausprobiert, aber da es in der Dokumentation steht, muss es möglich sein.
Nun, TC möchte eine universelle Lösung, bei der es nicht notwendig ist, vorher Sound-Ressourcen in Expert Advisor zu integrieren. Er möchte ein Interaktionssystem zwischen dem Expert Advisor und dem Server entwickeln, bei dem der erste eine Textdatei mit Wörtern erstellt, die JETZT vom Benutzer gesagt werden sollen, und der Server sie in .wav umwandelt und an den Expert Advisor zurückschickt. Anschließend schreibt der Expert Advisor unwissentlich die Datei anstelle der vorherigen Datei (mit dem vorherigen Voiceover vom Server) und ruft PlaySound auf, um das neue Voiceover abzuspielen.
Ich meinte die Verwendung von ResourceCreate
Erstellen Sie eine Ressource aus den empfangenen Daten. Und spielen Sie es dann mit PlaySound ab. Aber ich habe genau eine solche Verbindung in den Beispielen nicht gefunden (ich bin nicht sicher, ob es funktioniert). Deshalb habe ich die vorherige Nachricht gelöscht.
Ich meinte die Verwendung von ResourceCreate
Erstellen Sie eine Ressource aus den empfangenen Daten. Und spielen Sie es dann mit PlaySound ab. Da ich aber keinen solchen Link in den Beispielen gefunden habe (und nicht sicher bin, ob er funktioniert), habe ich die vorherige Nachricht gelöscht.
Was genau funktioniert bei Ihrer Abfrage nicht? In der Dokumentation finden sich gute Beispiele.
Ich habe jetzt keine Zeit, mich mit dem Protokoll des Sprechers zu befassen, und es ist nutzlos.
In Bezug auf Ihren Link - wenn Sie nicht verwenden können WebSocket - besser nicht zu verwenden, werden Sie eine Menge Zeit sparen (wenn keine Erfahrung mit ihm). Neben WebSocket gibt es noch andere Optionen.
Hier ist, was nicht funktioniert https://www.mql5.com/ru/forum/342293/page12#comment_16633648
Die Datei wird erstellt, ist aber leer. Sein Name
unterscheidet sich von der Datei, die mit dem Befehl curl heruntergeladen wird
Es deutet irgendwie darauf hin, dass der von Ihnen geschriebene Code
bildet die WebRequest-Syntax nicht korrekt.
Das heißt, es gelingt nicht, dass die WebRequest das tut, was curl tut
Das funktioniert nicht: https://www.mql5.com/ru/forum/342293/page12#comment_16633648
.....Ich kann sie mir ansehen, aber nicht vor morgen Abend. Wenn Sie es bis dahin nicht selbst herausgefunden haben.
Das funktioniert nicht: https://www.mql5.com/ru/forum/342293/page12#comment_16633648
Die Datei wird erstellt, ist aber leer. Sein Name
sich von der Datei unterscheidet, die mit dem Befehl curl heruntergeladen wurde
Dies ist ein Hinweis darauf, dass der von Ihnen geschriebene Code
bildet die WebRequest-Syntax nicht korrekt.
D.h. Sie können WebRequest nicht dazu bringen, das zu tun, was curl tut
und das wirst du auch nicht :-)
Warum übergibt man die Optionen für den Befehl curl in den HTTP-Headern?
Lesen Sie wenigstens ein paar Bücher, schauen Sie sich ein paar Beispiele an... sonst schreiben wir Ihnen wirklich einen Artikel