Viele Menschen werden die Spracheingabe von WeChat direkt nutzen wollen, denn Sprechen geht immer schneller als Tippen.
Im Gegensatz zu den üblichen .mp3
im Gesang antworten .wav
Das Format ist anders, WeChat verwendet für die Spracheingabe standardmäßig das .amr
Format.
Nachfolgend sehen Sie einen Webhook, den der Entwickler-Server von WeChat empfangen hat und der anzeigt, dass eine Sprachnachricht von einem Nutzer auf der öffentlichen Nummer eingegangen ist. .amr
.
Viele STT-Dienste (Speech to Text) unterstützen nur die erste Variante, was die Frage aufwirft, wie man die .amr
Format wird konvertiert in .mp3
Format?
Verschreibung
Zunächst wollte ich die Laf
Lösung, die sich später als Laf
befinden sich bei Funktion als Dienstleistung Lösung, die die Verwendung von Dateisystemen wie z. B. fs
Manipulation von Dateien auf dem Server.
Dann sah ich eine Lösungsidee auf GitHub[2]: Starten Sie eine express
Dienstes, unter Verwendung der fluent-ffmpeg
Oberbefehlshaber (Militär) .amr
konvertieren .mp3
Die Datei wird dann vorübergehend auf dem Server gespeichert und steht dem Anrufer zur Verfügung.
Diese Lösung setzt voraus, dass auf dem Server das Programm FFmpeg
oder aber fluent-ffmpeg
nicht verfügbar sein.
"Das ist keine einfache Function-as-a-Service", dachte ich mir. Ich bin selbst ein Back-End- und Ops-Typ, und ich war früher ganz auf Serverless fixiert und konzentrierte mich auf Front-End-Interaktionen mit Benutzern. Jetzt ist das eine kleine Herausforderung für mich.
Ich fühle mich jedoch an Sealos erinnert, das vor einiger Zeit online ging Devbox
In der Öffentlichkeit scheint es darum zu gehen, dies wieder gutzumachen. Laf
Solche Funktionen als Dienstleistung sind unzureichend.
"Könnte ich den Dienst nicht wie oben beschrieben auf Devbox bereitstellen?" Und so beginnt die Transformation (pit-stepping).
Devbox mit Body Sense
Was Devbox ist, können Sie in der Einleitung nachlesen:
Ich möchte hier insbesondere auf die Erfahrungen bei der Entwicklung eingehen.
Denn es beeinflusst sehr stark Ihre Wahrnehmung von Devbox
Das Verständnis und die Umwege, die ich genommen habe, so ist dies ein Absatz der Verwendung Tipps oder Schlussfolgerungen, die ich hier setzen zu diskutieren.
existieren Devbox
Darüber hinaus sind alle Entwicklungsprozessedirekt.
Anfangs war mir das sehr unangenehm, aber es funktioniert genau wie unser lokales IDE Verbindung zum SSH-Host
Funktion, werfen wir einen Blick auf die Claude Eine Anmerkung dazu:
Mit Devbox können Sie Folgendes vermeiden IP oder Domänenname des Protokollierungsservers
/ Geben Sie die SSH-Portnummer ein
/ Geben Sie den Benutzernamen oder das Passwort (oder den SSH-Schlüssel) des Servers ein.
Der Vorgang ist nur einen Knopfdruck entfernt.
Ich benutze Windsurfen Nach dem ersten Klick versuchte mein Windsurf, sich mit dem Remote-Server zu verbinden. Alle Änderungen, die Sie danach in der IDE vornehmen, werden tatsächlich auf dem Remote-Server ausgeführt.
Einschließlich, laufend pnpm i
Oder andere Befehle, alle von ihnen.
Noch wichtiger ist, dass alle Ihre Aktionen, einschließlich der Ausführung von Befehlen, in der Devbox Web UI mit einem Klick auf die Schaltfläche Freigabeversion
Wenn alle (wiederum einschließlichAusführung des Befehls
) wird in ein Docker-Image verpackt, das einem Snapshot des aktuellen Zustands der virtuellen Maschine entspricht.
Alle Abhängigkeiten und die zugrundeliegende Software, die wir in der Devbox-Entwicklungsumgebung installiert haben (wie z. B. dieFFmpeg
), in Freigabeversion
Danach mussten wir unsere Schritte in der Produktionsumgebung überhaupt nicht mehr nachvollziehen, sondern es waren alle Voraussetzungen bereits installiert.
Wenn Sie das verstehen, verstehen Sie endlich, warum Devbox
In der Werbung hieß es immer: Endlich müssen wir uns nicht mehr um Abhängigkeitsprobleme und Versionsnummernkonflikte in Produktionsumgebungen kümmern.Denn die Produktionsumgebung ist ein vollständiger Spiegel der Entwicklungsumgebung!
Praktisch
Mit dem oben beschriebenen Verständnis der Devbox
Der praktische Teil der Umsetzung ist relativ einfach, nachdem die Kenntnisse über die
1. express auf Devbox auswählen
2. mit IDE öffnen
Wie bereits erwähnt, ist die Verwendung von VS-Code
/ Cursor
/ Windsurfen
Verbinden Sie sich mit dem Server für die Entwicklung.
Wählen Sie nach der Verbindung mit dem Server alle Dateien aus Cmd + A
entfernen Sie die Standardvorlagendatei vollständig.
3) Herunterladen von Code
Wir haben einfach gewählt express
Vorlage, so dass die Standard git
, Knoten
im Gesang antworten pnpm
Alle installiert.
Öffnen wir nun ein Terminal und verwenden git
Code herunterladen.
git clone https://github.com/yenche123/liubai.git
Hier ein Tipp: Wenn Sie Befehle auf der IDE des SSH-Hosts eingeben, werden Sie das Gefühl haben, dass es eine kleine Verzögerung gibt, weil Sie wirklich das Terminal auf dem entfernten Server bedienen, natürlich gibt es eine Verzögerung zwischen Ihnen.
Bisher wurde lokal entwickelt, der Code verpackt und auf den Server hochgeladen, wobei die Devbox
Dann wird alles auf dem Server betrieben, Entwicklung-als-Bereitstellung.
4. installieren Sie FFmpeg
Geben Sie zum Abschluss den folgenden Befehl in Terminal ein FFmpeg
Installation von.
sudo apt update && sudo apt upgrade # zum Fortfahren Y drücken sudo apt install ffmpeg # zum Fortfahren Y drücken ffmpeg -version # prüfen, ob erfolgreich installiert
In der letzten Zeile können Sie überprüfen, ob die Installation erfolgreich war.
Auch nach dieser Installation müssen Sie Ihre Schritte in einer Produktionsumgebung nicht noch einmal nachvollziehen, da die Software direkt in das Image integriert wird. Das ist ziemlich erstaunlich, nicht wahr?
5. entrypoint.sh schreiben
Wir befinden uns im Stammverzeichnis, demselben Verzeichnis wie die liubai/
Die Geschwisterposition (siehe oben) erzeugt eine Einstiegspunkt.sh
Datei, die wie folgt lautet.
#!/bin/bash cd /home/Devbox/Projekt/liubai/liubai-Backends/liubai-ffmpeg pnpm dev
Diese Datei informiert den Server in der Produktionsumgebung darüber, wie er den gewünschten Dienst nach dem Start des Rechners starten soll.
Hier weisen wir den Rechner an, zuerst den Zielordner zu suchen liubai-ffmpeg
Führen Sie dann die pnpm-Entwicklung
Befehl zum Starten der express
Dienstleistungen.
6. die Autorisierung von entrypoint.sh
Ebenfalls im Stammverzeichnis führen wir den folgenden Befehl für die Einstiegspunkt.sh
Berechtigungen für ausführbare Dateien hinzufügen.
chmod +x entrypoint.sh
7. die Installation von Abhängigkeiten
Öffnen wir sie. liubai-ffmpeg
Verzeichnis, um die erforderlichen Abhängigkeiten zu installieren:
cd /home/Devbox/project/liubai/liubai-backends/liubai-ffmpeg pnpm i
8. das Starten von Diensten in der Entwicklungsumgebung
Kehren wir zum Stammverzeichnis zurück und simulieren wir den Start des Dienstes erneut:
cd /home/Devbox/Projekt bash einstiegspunkt.sh
Die oben gezeigte Druckmeldung bedeutet, dass wir die Entwicklungsumgebung auf dem Rechner mit dem amr
Klassifikator für wiederholte Handlungen mp3
von Dienstleistungen!
Kehren wir zurück zu Devbox
Kopieren Sie die öffentliche Adresse in die Web-UI.
Geben Sie dann in der Adressleiste Ihres Browsers ein /Hallo
Wenn Sie den unten gezeigten Bildschirm sehen, bedeutet dies, dass der uns erteilte Dienst erfolgreich gestartet wurde.
Jetzt spleißen. /new?url=Ihre amr-Datei&id=aktueller Zeitstempel in Millisekunden
Und Sie erhalten eine amr
konvertieren mp3
Der Service!
9. die Bereitstellung in der Produktionsumgebung
Wir klicken auf die Devbox-Weboberfläche Freigabeversion
.
Es ist normal, dass Ihre IDE während des Freigabeprozesses kurzzeitig die Verbindung unterbricht.
Nach der Buchung klicken wir auf online gehen
Klicken Sie einfach auf Fertigstellen entsprechend der Mindestkonfiguration.
Nachdem Sie ein paar Minuten gewartet haben, steht Ihnen ein weiterer öffentlich zugänglicher Link zur Verfügung, nämlich der der Produktionsumgebung amr
konvertieren mp3
Service!
git commit auf Devbox
Auf der Devbox möchten wir vielleicht nach der Entwicklung ein Git-Commit durchführen, wofür der entfernte Server Push-Zugriff auf das entfernte Repository haben muss.
Hier ist ein Beispiel für das, was mir begegnet ist, am Beispiel von GitHub.
Auf dem Terminal ausführen git push origin Ihr Zweigname
Wenn Sie dies tun, öffnet Terminal eine GitHub-Seite in Ihrem Browser und fordert Sie auf, den Autorisierungscode aus der IDE einzugeben, wie im zweiten Bild unten gezeigt.
Es kann jedoch vorkommen, dass dieser Vorgang nicht autorisiert wird und eine Meldung in der rechten unteren Ecke der IDE erscheint, die Sie auffordert, die Persönlicher Zugang Token
Führen Sie die Autorisierung wie unten dargestellt durch:
Nachdem die Genehmigung abgeschlossen ist, wird Git-Push
Ein wenig, und es sollte in Ordnung sein.
Erleben Sie es jetzt
Der oben erwähnte Dienst wurde bereits auf der "White Note" bereitgestellt. Folgen Sie nun der öffentlichen WeChat-Nummer der "White Note", senden Sie eine Sprachmitteilung an sie, und sie wird die oben erwähnte Nummer anrufen. amr
Klassifikator für wiederholte Handlungen mp3
Dienstleistungen.
Von den 7 Tigern, die derzeit große Modellanbieter sind, ist MiniMax derjenige, der es Entwicklern ermöglicht Nachrichten
direkt in die mp3
formal base64
. Sehen Sie dies, und wagen Sie es nicht, es zu versuchen, nativ mit multimodalen in WeChat!
Um die obigen Ausführungen zusammenzufassen, haben wir die Devbox
Beendet ein amr
Klassifikator für wiederholte Handlungen mp3
der Dienstleistungen.
Im Mittelpunkt dieses Papiers steht die Devbox mit Body Sense In diesem Abschnitt haben wir kurz die Devbox
Unterschiede zur traditionellen Entwicklung aufgrund von Verbindung zum SSH-Host
Fähigkeiten haben wir den Remote-Server, auf dem wir die Installation der Software und die Entwicklung des Kerncodes abgeschlossen haben, direkt betrieben.
mit Hilfe von Devbox
Optimierung des zugrundeliegenden Containers, der uns die Möglichkeit gibt, dieEntwickeln, wie Sie bereitstellenDie Möglichkeit, die Ergebnisse nach der Entwicklung direkt auf dem Entwicklungsserver zu validieren; während die Devbox
Die Möglichkeit, einen Schnappschuss des gesamten Virtualisierers zu erstellen, löst das Problem der Entwicklungsumgebung (Computer)
im Gesang antworten Produktionsumgebung
So können wir in Produktionsumgebungen sofort einsetzbare Ergebnisse erzielen, ohne Abhängigkeiten und die zugrunde liegende Software installieren zu müssen.