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:Sealos Devbox veröffentlicht: Bereitstellung einer Cloud Native Entwicklungsumgebung
Ich möchte hier speziell 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.
Ich fühlte mich zunächst sehr unwohl dabei, aber es funktioniert genauso wie unser lokales IDE Connect to SSH Host
Funktion, werfen wir einen Blick auf die Claude Eine Anmerkung dazu:
Mit Devbox können Sie Folgendes vermeiden 记录服务器 IP 或域名
/ 输入 SSH 端口号
/ 输入服务器用户名或密码(或SSH密钥)
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 发布版本
Wenn alle (wiederum einschließlich命令的运行
) 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 发布版本
Danach mussten wir unsere Schritte in der Produktionsumgebung überhaupt nicht mehr nachvollziehen, sondern alle Voraussetzungen waren bereits installiert.
Wenn Sie das verstehen, verstehen Sie endlich, warum Devbox
Die Werbung hat immer gesagt: Endlich müssen wir uns keine Sorgen mehr über Abhängigkeitsprobleme und Versionsnummernkonflikte in Produktionsumgebungen machen.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
/ Windsurf
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
, node
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 das Terminal wirklich auf dem Remote-Server bedienen.
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
Einbau von.
sudo apt update && sudo apt upgrade # press Y to continue sudo apt install ffmpeg # press Y to continue ffmpeg -version # verify if installed successfully
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 mehr 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 entrypoint.sh
Datei, die wie folgt lautet.
#!/bin/bash cd /home/Devbox/project/liubai/liubai-backends/liubai-ffmpeg pnpm dev
Diese Datei informiert den Server in der Produktionsumgebung darüber, wie der gewünschte Dienst nach dem Start des Rechners gestartet werden soll.
Hier weisen wir den Rechner an, zuerst den Zielordner zu suchen liubai-ffmpeg
Führen Sie dann die pnpm dev
Befehl zum Starten der express
Dienstleistungen.
6. die Autorisierung von entrypoint.sh
Ebenfalls im Stammverzeichnis führen wir den folgenden Befehl für die entrypoint.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/project bash entrypoint.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 die Adressleiste Ihres Browsers ein /hello
Wenn Sie den unten gezeigten Bildschirm sehen, bedeutet dies, dass der uns erteilte Dienst erfolgreich gestartet wurde.
Jetzt spleißen. /new?url=你的amr文件&id=当前时间戳(毫秒)
Und Sie erhalten eine amr
konvertieren mp3
Der Service!
9. die Bereitstellung in der Produktionsumgebung
Wir klicken auf die Devbox-Weboberfläche 发布版本
.
Es ist normal, dass Ihre IDE während des Freigabeprozesses kurzzeitig die Verbindung unterbricht.
Nach der Buchung klicken wir auf 上线
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 你的分支名
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 Personal access tokens
Führen Sie die Autorisierung wie unten dargestellt durch:
Nachdem die Autorisierung 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 messages
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 Connect to 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 Sie, 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 开发环境
im Gesang antworten 生产环境
So können wir in Produktionsumgebungen sofort einsetzbare Ergebnisse erzielen, ohne Abhängigkeiten und die zugrunde liegende Software installieren zu müssen.