Entdecken Sie den Echtzeit-KI-Gesprächscopiloten für Ihr Smartphone

Entdecken Sie den Echtzeit-KI-Gesprächscopiloten für Ihr Telefon. Bauen Sie ein leistungsfähiges Werkzeug auf, das Gespräche in Echtzeit transkribiert und analysiert und sofortige Vorschläge und Rückmeldungen zur Verbesserung der Kommunikation liefert. Verbessern Sie Ihre Interviews, Meetings und sozialen Interaktionen mit diesem KI-gesteuerten Assistenten.

20. Februar 2025

party-gif

Dieser Blogbeitrag untersucht das Potenzial eines KI-Gesprächscopiloten in Echtzeit, der bei Aufgaben wie Vorstellungsgesprächen und Nutzerforschung unterstützen kann. Der Autor präsentiert die Entwicklung einer Web- und Mobilanwendung, die fortschrittliche Sprach-zu-Text- und Sprachmodelle nutzt, um Transkriptions- und Vorschlagsfähigkeiten in Echtzeit bereitzustellen, und hebt die Vorteile eines solchen Tools für die Verbesserung von Kommunikation und Produktivität hervor.

Einführung in den Echtzeit-KI-Gesprächscopiloten

Vor fast einem Jahr, etwa im März 2023, als ChatGPT gerade herauskam und zum heißesten Thema der Welt wurde, erinnere ich mich noch genau, dass ich eine Demo von Arony gesehen habe, in der er ein "Interview Breaker" - ein ChatGPT-Tool zum Knacken von Vorstellungsgesprächen - entwickelt hat. Diese Woche habe ich selbst etwas Ähnliches gebaut, nämlich den "Interview Breaker" - ein Proof of Concept, das mit Hilfe von ChatGPT entwickelt wurde, um Vorstellungsgespräche zu knacken. Es nimmt deine bisherige Erfahrung auf, hört dem Gespräch mit deinem Interviewer zu und sagt dir, was du sagen sollst, um dich auf Dinge vorzubereiten, die du vielleicht nicht weißt.

Als leitender Architekt lege ich bei der Priorisierung dessen, worauf ich mich für einen Backend-Service konzentrieren soll, den Schwerpunkt auf Skalierbarkeit. Ein solches Tool wird den Bewerbungsprozess völlig durcheinander bringen. Normalerweise, wenn solch große Technologien auftauchen, wie Computer oder das Internet, verändern sie alle Prozesse, die sich vorher entwickelt haben. Das bedeutet, dass einige dieser Fragen in Zukunft vielleicht gar keinen Sinn mehr ergeben könnten.

Ich dachte, das wäre eine fantastische Idee, denn damals durchlief ich selbst einige Bewerbungsprozesse, also hätte ich gerne ein Echtzeit-Tool, das mir dabei helfen kann, sie zu meistern. Ich habe tatsächlich versucht, diesen Prototypen zu bauen, bei dem ein Spracherkennungsmodell die Transkription erstellt und auch ein großes Sprachmodell Antworten generiert, aber dieser Prototyp funktionierte im echten Leben leider nicht gut. Eine der wichtigsten Anforderungen für solche Echtzeit-Interview- oder Gesprächsbegleiter ist, dass sie eine geringe Latenz und Echtzeit-Fähigkeit haben müssen. Wenn es 30-40 Sekunden dauern würde, bis sie Ergebnisse generieren, würde das nicht wirklich funktionieren. Leider war das im letzten März der Fall, da sowohl das Spracherkennungsmodell als auch das große Sprachmodell ziemlich lange für die Inferenz brauchten. Das war ein einfaches Projekt in der Theorie, aber in der Praxis sehr schwer, ein nutzbares Produkt zu bauen.

Einige Monate später sah ich jedoch ein anderes Produkt, das ein ähnliches Szenario zeigte, aber mit einer fast Echtzeit-Leistung. Wie gehst du in der Luft- und Raumfahrttechnik, z.B. bei Strahltriebwerken oder beim Wiedereintritt von Raumfahrzeugen, mit solchen Herausforderungen um?

Herausforderungen beim Aufbau von Echtzeit-Transkription und schneller Inferenz

Es gibt zwei Schlüsselkomponenten, um einen Echtzeit-Gesprächsbegleiter zu bauen: eine Echtzeit-Transkription und eine schnelle Inferenz.

Echtzeit-Transkription

Die Erzielung einer Echtzeit-Transkription ist eine der größten Herausforderungen. Typische Spracherkennungsmodelle wie Whisper sind nicht für Streaming-Szenarien ausgelegt, bei denen Audio in kleinen Häppchen statt in der gesamten Aufnahme verarbeitet wird.

Um dies zu überwinden, ist eine gängige Lösung, eine sich wiederholende Schleife zu erstellen, die kontinuierlich kleine Audioabschnitte (z.B. alle 2-5 Sekunden) erfasst, sie an das Spracherkennungsmodell sendet und die kleinen Transkripte zusammenfügt. Dieser Ansatz erfordert Optimierungen, um die Genauigkeit zu gewährleisten, wie z.B. den Vergleich von Zeitstempeln von verbindenden Wörtern, um die endgültige Transkription zu verbessern.

erfreulicherweise hat sich die Spracherkennungstechnologie schnell weiterentwickelt, und es gibt jetzt Lösungen, die eine Echtzeit-Transkription ermöglichen, wie z.B. die Verwendung von extrem schnellen Modellen, die auf Plattformen wie Replicate gehostet werden, oder die Bereitstellung leichtgewichtiger Modelle wie Whisper Kit direkt auf Mobilgeräten.

Schnelle Inferenz

Die zweite Herausforderung ist, eine sehr schnelle Inferenz mit dem großen Sprachmodell zu erreichen, um in Echtzeit Vorschläge zu generieren. Um dies zu bewältigen:

  1. Wähle ein schnelles und kleines Sprachmodell: Modelle wie Meteo 7B sind viel kleiner und schneller als GPT-4, was eine schnellere Antwortgenerierung mit weniger Rechenressourcen ermöglicht.

  2. Reduziere die Eingabegröße: Je länger das Gespräch dauert, desto größer kann die Eingabe für das Sprachmodell werden. Techniken wie die Zusammenfassung durch Sprachmodelle können verwendet werden, um nur die relevanten Informationen zu extrahieren und die Eingabegröße zu reduzieren.

  3. Optimiere die Ausgabegenerierung: Weitere Optimierungen können durchgeführt werden, um die Anzahl der Ausgabetokens zu reduzieren, z.B. durch den Einsatz von Prompt-Engineering-Methoden.

Durch die Kombination dieser Techniken für Echtzeit-Transkription und schnelle Inferenz ist es möglich, einen hochreaktionsfähigen Echtzeit-Gesprächsbegleiter zu bauen, der während Gesprächen wertvolle Vorschläge und Unterstützung liefern kann.

Entwicklung eines webbasierten Gesprächscopiloten-Demos

Um eine webbasierte Gesprächsbegleiter-Demo zu bauen, werden wir eine Kombination aus Flask (einem Python-Webframework) und Replicate (einer Plattform zum Ausführen von Open-Source-KI-Modellen) verwenden.

Die Schlüsselkomponenten sind:

  1. Echtzeit-Transkription: Wir werden ein schnelles Spracherkennungsmodell von Replicate verwenden, um eine Echtzeit-Transkription des Gesprächs zu erstellen. Dies beinhaltet das kontinuierliche Erfassen kleiner Audioabschnitte, das Senden an das Spracherkennungsmodell und das Zusammenfügen der Ergebnisse.

  2. Schnelle Inferenz: Wir werden ein kleines, schnelles Sprachmodell von Replicate (wie Minitram) verwenden, um in Echtzeit Vorschläge und Antworten auf Basis der Transkription zu generieren. Wir werden auch Techniken wie die Reduzierung der Eingabegröße und die Zusammenfassung des Gesprächs erforschen, um die Geschwindigkeit zu verbessern.

Die Webanwendung wird folgende Funktionen haben:

  • Ein Textfeld, in dem der Benutzer Kontext zum Gespräch angeben kann.
  • Eine "Aufnehmen"-Schaltfläche zum Starten und Stoppen der Audioaufnahme.
  • Eine "Vorschlag erhalten"-Schaltfläche, um das Sprachmodell zu aktivieren und Vorschläge zu generieren.
  • Eine Echtzeit-Anzeige der Transkription.
  • Eine Anzeige der generierten Vorschläge.

Hier ist der schrittweise Prozess:

  1. Flask-App einrichten:

    • Erstelle die Datei app.py und importiere die notwendigen Bibliotheken, einschließlich des Replicate Python SDK.
    • Definiere die Flask-Routen für die Startseite und den Audioverarbeitungs-Endpunkt.
    • Richte den AWS S3-Bucket und die Anmeldeinformationen zum vorübergehenden Speichern der Audioaufnahmen ein.
  2. Implementiere die Echtzeit-Transkriptionsfunktionalität:

    • Verwende das Replicate Whisper-Modell, um kontinuierlich Audioabschnitte zu erfassen und zu transkribieren.
    • Optimiere die Transkription durch den Umgang mit Wortgrenzen und die Aufrechterhaltung des Kontexts zwischen den Abschnitten.
  3. Implementiere die schnelle Inferenzfunktionalität:

    • Verwende das Replicate Minitram-Modell (oder ein ähnliches kleines, schnelles Sprachmodell), um auf Basis der vollständigen Transkription Vorschläge zu generieren.
    • Erforsche Techniken wie die Reduzierung der Eingabegröße und die Zusammenfassung des Gesprächs, um die Inferenzgeschwindigkeit zu verbessern.
  4. Erstelle das Frontend mit HTML und JavaScript:

    • Erstelle die Datei index.html im templates-Ordner.
    • Definiere die HTML-Struktur mit dem Textfeld, der Aufnahme-Schaltfläche und der Vorschlagsanzeige.
    • Implementiere die JavaScript-Logik zum Umgang mit der Aufnahme, dem Audioupload und den API-Aufrufen an den Flask-Backend.
  5. Teste und deploye die Webanwendung:

    • Führe die Flask-App lokal aus und teste die Funktionalität.
    • Deploye die App auf einer Hosting-Plattform (z.B. Heroku, AWS oder deinen eigenen Server).

Nutzung des Whisper-Kits für einen mobilen Gesprächscopiloten

Nachdem ich die beeindruckende Demo des webbasierten Gesprächsbegleiters gesehen hatte, beschloss ich, das Potenzial des Aufbaus einer Mobilversion mit Hilfe des Whisper Kit Open-Source-Frameworks zu erkunden. Whisper Kit bietet ein Swift-Paket, das die Bereitstellung des Whisper-Spracherkennungsmodells direkt auf iOS-Geräten ermöglicht und so eine Echtzeit-Transkription mit minimaler Latenz ermöglicht.

Um loszulegen, klonte ich das Whisper Kit GitHub-Repository und öffnete das Beispielprojekt in Xcode. Das Projekt enthält einen whisper-ax-Ordner, der den Quellcode für eine Beispiel-iOS-App enthält, die die Verwendung des Whisper Kit demonstriert.

In der Datei ContentView.swift definierte ich zunächst einige zusätzliche Zustandsvariablen, um die Prompt-Eingabe und die API-Antwort-Zusammenfassung des großen Sprachmodells zu verwalten. Dann fügte ich ein Eingabefeld hinzu, damit der Benutzer den Prompt anpassen kann, der zur Bereitstellung von Kontext für das große Sprachmodell verwendet wird.

Anschließend implementierte ich die Funktion getSuggestion(), die für das Senden der Transkription und des Prompts an die Replicate-API verantwortlich ist, um eine Antwort vom Mistral-Sprachmodell zu generieren. Diese Funktion verarbeitet den Stream-Charakter der Replicate-API, überprüft den Status kontinuierlich, bis die Antwort vollständig ist, und aktualisiert dann die Zustandsvariable API_response_summary mit dem generierten Vorschlag.

Schließlich fügte ich eine "Vorschlag erhalten"-Schaltfläche hinzu, die die Funktion getSuggestion() auslöst, und zeigte die API-Antwort-Zusammenfassung unter der Echtzeit-Transkription an.

Die resultierende iOS-App ermöglicht es den Benutzern, ein Gespräch zu starten, die Transkription in Echtzeit zu sehen und sofortige Vorschläge vom großen Sprachmodell zu erhalten, um das Gespräch zu unterstützen. Die Verwendung von Whisper Kit für die Spracherkennungsfunktionalität in Kombination mit der Integration der Replicate-API bietet ein nahtloses und reaktionsschnelles Gesprächsbegleiter-Erlebnis direkt auf dem Mobilgerät des Benutzers.

Dieser Ansatz eröffnet neue Möglichkeiten für eine Echtzeit-Konversationsunterstützung, die auf den Kontext abgestimmt ist und Benutzer bei wichtigen Diskussionen, Interviews und sozialen Interaktionen mit intelligenter Unterstützung empowert. Durch die Nutzung der neuesten Fortschritte in den Bereichen Spracherkennung und große Sprachmodelle kann der mobile Gesprächsbegleiter zu einem wertvollen Werkzeug für die Verbesserung von Kommunikation und Produktivität werden.

Ich freue mich darauf, diese mobile Gesprächsbegleiter-App weiter zu verfeinern und zu verbessern, und ich freue mich darauf, sie der Community vorzustellen, sobald sie für die Veröffentlichung bereit ist. Lass mich wissen, wenn du Interesse daran hast, die App auszuprobieren oder Feedback zu ihrer Entwicklung zu geben.

Schlussfolgerung

Zusammenfassend lässt sich sagen, dass die Entwicklung eines Echtzeit-Gesprächsbegleiters eine komplexe Aufgabe ist, die mehrere Schlüsselherausforderungen erfordert. Die wichtigsten Herausforderungen sind:

  1. Echtzeit-Transkriptionserstellung: Die Erzielung einer latenzarmen, genauen Spracherkennungsübertragung ist entscheidend für die Bereitstellung von Echtzeitfeedback. Techniken wie die Verwendung eines Streaming-Spracherkennungsmodells und die Optimierung der Verbindung zwischen Audioabschnitten und transkribiertem Text sind unerlässlich.

  2. Schnelle Inferenz mit großen Sprachmodellen: Die schnelle Generierung relevanter Vorschläge und Antworten erfordert den Einsatz kleinerer, spezialisierter Sprachmodelle, die eine schnelle Inferenz ermöglichen. Techniken wie die Reduzierung der Eingabetokengröße und die Zusammenfassung des Gesprächsverlaufs können dazu beitragen, die Leistung zu verbessern.

  3. Nahtlose Integration: Die Kombination der Echtzeit-Transkriptionserstellung und der Inferenz mit großen Sprachmodellen zu einer kohärenten, benutzerfreundlichen Anwendung ist entscheidend, um ein reibungsloses und effektives Erlebnis zu bieten.

Die Demonstration zeigte, wie diese Herausforderungen mithilfe einer Kombination von Technologien wie dem Whisper-Spracherkennungsmodell, dem Minstrel-Sprachmodell und der Replicate-Plattform für eine einf

FAQ