Uma biblioteca TTS/STT de alta qualidade e confiável para servidor e navegador
Documentos · Changelog · Relatório Bug · Recurso de solicitação
? O lobo-bate-papo suporta tecnologias de texto para fala (TTS) e STT (STT), permitindo que nosso aplicativo converta mensagens de texto em saídas de voz claras, permitindo que os usuários interajam com nosso agente de conversação como se estivessem conversando com uma pessoa real. Os usuários podem escolher entre uma variedade de vozes para emparelhar com o agente.
No processo de implementação desse recurso, descobrimos que não havia biblioteca de front-end de TTS (texto em fala) disponível no mercado. Como resultado, investimos muito esforço, incluindo conversão de dados, gerenciamento de progresso de áudio e visualização de fala, entre outras tarefas.
Observação
Portanto, decidimos refinar nossa implementação e torná -la de código aberto, na esperança de ajudar os desenvolvedores que desejam implementar o TTS. @lobehub/tts é um kit de ferramentas TTS de alta qualidade desenvolvido no TypeScript, que suporta o uso tanto no lado do servidor quanto no navegador.
Execute o script abaixo 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
Execute no Node.js
Como o ambiente Node.js não possui a instância WebSocket , precisamos polirfilitar WebSocket. Isso pode ser feito importando o pacote 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 pacote é apenas ESM.
Para instalar @lobehub/tts , execute o seguinte comando:
$ pnpm i @lobehub/tts$ bun add @lobehub/ttsObservação
Por trabalho correto com o próximo.js ssr, adicione transpilePackages: ['@lobehub/tts'] ao next.config.js . Por exemplo:
const nextConfig = {
transpilePackages : [ '@lobehub/tts' ] ,
} ; Você pode usar o Github Codespaces para desenvolvimento on -line:
Ou cloná -lo para o desenvolvimento local:
$ git clone https://github.com/lobehub/lobe-tts.git
$ cd lobe-tts
$ bun install
$ bun devAs contribuições de todos os tipos são mais do que bem -vindas, se você estiver interessado em contribuir com código, sinta -se à vontade para conferir nossos problemas do Github para ficar preso para nos mostrar do que você é feito.
Cada bits conta e sua doação única brilha em nossa galáxia de apoio! Você é uma estrela de tiro, causando um impacto rápido e brilhante em nossa jornada. Obrigado por acreditar em nós - sua generosidade nos guia para nossa missão, um flash brilhante de cada vez.

Mais recursos
Copyright © 2023 LobeHub.
Este projeto está licenciado pelo MIT.