Eine hochwertige und zuverlässige TTS/STT-Bibliothek für Server und Browser
Dokumente · ChangeLog · Fehler melden · Anforderungsfunktion
? Der LOBE-Chat unterstützt Text-to-Speech (TTS) und Speech-to-Text (STT) -Technologien, sodass unsere Anwendung Textnachrichten in klare Sprachausgaben umwandeln kann, sodass Benutzer mit unserem Konversationsagenten interagieren, als ob sie mit einer echten Person sprechen würden. Benutzer können aus einer Vielzahl von Stimmen wählen, um sich mit dem Agenten zu kombinieren.
Bei der Implementierung dieser Funktion stellten wir fest, dass auf dem Markt keine zufriedenstellende TTS-Bibliothek (Text-to-Speech) vorhanden war. Infolgedessen haben wir unter anderem viele Anstrengungen investiert, einschließlich Datenkonvertierung, Audio -Fortschrittsmanagement und Sprachvisualisierung.
Notiz
Daher haben wir uns entschlossen, unsere Implementierung zu verfeinern und Open Source zu machen, in der Hoffnung, Entwicklern zu unterstützen, die TTs implementieren möchten. @LoBehub/TTS ist ein hochwertiges TTS-Toolkit, das in TypeScript entwickelt wurde, das die Verwendung sowohl auf der serverseitigen als auch im Browser unterstützt.
Führen Sie das Skript unten aus. Verwenden Sie Bun: bun index.js
// index.js
import { EdgeSpeechTTS } from '@lobehub/tts' ;
import { Buffer } from 'buffer' ;
import fs from 'fs' ;
import path from 'path' ;
// Instantiate EdgeSpeechTTS
const tts = new EdgeSpeechTTS ( { locale : 'en-US' } ) ;
// Create speech synthesis request payload
const payload = {
input : 'This is a speech demonstration' ,
options : {
voice : 'en-US-GuyNeural' ,
} ,
} ;
// Call create method to synthesize speech
const response = await tts . create ( payload ) ;
// generate speech file
const mp3Buffer = Buffer . from ( await response . arrayBuffer ( ) ) ;
const speechFile = path . resolve ( './speech.mp3' ) ;
fs . writeFileSync ( speechFile , mp3Buffer ) ;Wichtig
Auf node.js laufen
Da der Node.js -Umgebung die WebSocket -Instanz fehlt, müssen wir WebSocket Polyfill. Dies kann durch Importieren des WS -Pakets erfolgen.
// import at the top of the file
import WebSocket from 'ws' ;
global . WebSocket = WebSocket ; import { AudioPlayer , AudioVisualizer , useAudioPlayer } from '@lobehub/tts/react' ;
export default ( ) => {
const { ref , isLoading , ... audio } = useAudioPlayer ( url ) ;
return (
< Flexbox align = { 'center' } gap = { 8 } >
< AudioPlayer audio = { audio } isLoading = { isLoading } style = { { width : '100%' } } />
< AudioVisualizer audioRef = { ref } isLoading = { isLoading } />
</ Flexbox >
) ;
} ;Wichtig
Dieses Paket ist nur ESM.
Führen Sie den folgenden Befehl aus, um @lobehub/tts zu installieren:
$ pnpm i @lobehub/tts$ bun add @lobehub/ttsNotiz
Fügen Sie transpilePackages: ['@lobehub/tts'] zu next.config.js korrekt mit Next.js SSR. Zum Beispiel:
const nextConfig = {
transpilePackages : [ '@lobehub/tts' ] ,
} ; Sie können GitHub -Codenspaces für die Online -Entwicklung verwenden:
Oder klonen Sie es für die lokale Entwicklung:
$ git clone https://github.com/lobehub/lobe-tts.git
$ cd lobe-tts
$ bun install
$ bun devBeiträge aller Typen sind mehr als willkommen. Wenn Sie an Code beitragen möchten, können Sie unsere Github -Probleme auschecken, um uns zu zeigen, woraus Sie gemacht sind.
Jedes Stück zählt und Ihre einmalige Spende funkelt in unserer Galaxie der Unterstützung! Sie sind ein Schießstar, der sich auf unsere Reise schnell und hell beeinflusst. Vielen Dank, dass Sie an uns glauben - Ihre Großzügigkeit führt uns zu unserer Mission, einem brillanten Blitz.

Weitere Ressourcen
Copyright © 2023 LoBehub.
Dieses Projekt ist MIT lizenziert.