Una biblioteca TTS/STT confiable y de alta calidad para servidor y navegador
Documentos · ChangeLog · Informe de error · Función de solicitud
? El chat de lóbulo admite tecnologías de texto a voz (TTS) y de voz a texto (STT), lo que permite que nuestra aplicación convierta los mensajes de texto en salidas de voz claras, lo que permite a los usuarios interactuar con nuestro agente conversacional como si estuvieran hablando con una persona real. Los usuarios pueden elegir entre una variedad de voces para emparejar con el agente.
En el proceso de implementación de esta función, descubrimos que no había una biblioteca frontend de TTS (texto a voz) satisfactoria disponible en el mercado. Como resultado, invertimos mucho esfuerzo, incluida la conversión de datos, la gestión del progreso de audio y la visualización del habla, entre otras tareas.
Nota
Por lo tanto, decidimos refinar nuestra implementación y hacerlo de código abierto, con la esperanza de ayudar a los desarrolladores que desean implementar TTS. @LobeHub/TTS es un kit de herramientas TTS de alta calidad desarrollado en TypeScript, que admite el uso tanto en el lado del servidor como en el navegador.
Ejecute el script a continuación Use 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 ) ;Importante
Ejecutar en node.js
Como el entorno Node.js carece de la instancia WebSocket , necesitamos pololear WebSocket. Esto se puede hacer importando el paquete WS.
// 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 >
) ;
} ;Importante
Este paquete es solo ESM.
Para instalar @lobehub/tts , ejecute el siguiente comando:
$ pnpm i @lobehub/tts$ bun add @lobehub/ttsNota
Por el trabajo correcto con Next.js SSR, agregue transpilePackages: ['@lobehub/tts'] a next.config.js . Por ejemplo:
const nextConfig = {
transpilePackages : [ '@lobehub/tts' ] ,
} ; Puede usar GitHub CodeSpaces para el desarrollo en línea:
O clonarlo para el desarrollo local:
$ git clone https://github.com/lobehub/lobe-tts.git
$ cd lobe-tts
$ bun install
$ bun devLas contribuciones de todos los tipos son más que bienvenidas, si está interesado en contribuir con código, no dude en consultar nuestros problemas de GitHub para atascarse para mostrarnos de qué está hecho.
¡Cada bit cuenta y su donación única brilla en nuestra galaxia de apoyo! Eres una estrella fugaz, que tiene un impacto rápido y brillante en nuestro viaje. Gracias por creer en nosotros: su generosidad nos guía hacia nuestra misión, un destello brillante a la vez.

Más recursos
Copyright © 2023 Lobbehub.
Este proyecto tiene licencia MIT.