服务器和浏览器的高质量且可靠的TTS/STT库
文档·ChangElog·报告错误·请求功能
? Lobe Chat支持文本对语音(TTS)和语音对文本(STT)技术,使我们的应用程序能够将短信转换为清晰的语音输出,从而使用户可以与我们的对话代理进行交互,就好像他们在与真实的人说话一样。用户可以从各种声音中选择与代理配对。
在实施此功能的过程中,我们发现市场上没有令人满意的TTS(文本到语音)前端库。结果,我们投入了大量精力,包括数据转换,音频进度管理和语音可视化以及其他任务。
笔记
因此,我们决定完善我们的实施并将其设置为开源,希望协助希望实施TTS的开发人员。 @lobehub/tts是在打字稿中开发的高质量TTS工具包,它支持服务器端和浏览器中的用法。
运行下面的脚本使用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 ) ;重要的
在node.js上运行
由于Node.js环境缺少WebSocket实例,因此我们需要进行polyfill Websocket。这可以通过导入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 >
) ;
} ;重要的
此软件包仅是ESM。
要安装@lobehub/tts ,请运行以下命令:
$ pnpm i @lobehub/tts$ bun add @lobehub/tts笔记
通过使用Next.js SSR正确工作,添加transpilePackages: ['@lobehub/tts'] next.config.js 。例如:
const nextConfig = {
transpilePackages : [ '@lobehub/tts' ] ,
} ; 您可以使用github代码进行在线开发:
或克隆到本地发展:
$ git clone https://github.com/lobehub/lobe-tts.git
$ cd lobe-tts
$ bun install
$ bun dev所有类型的贡献都非常受欢迎,如果您有兴趣贡献代码,请随时查看我们的GitHub问题,以陷入困境,以向我们展示您的制作。
每一个都重要,您的一次性捐赠在我们的支持银河系中闪闪发光!您是射击星,对我们的旅程产生迅速而明亮的影响。感谢您相信我们 - 您的慷慨指导我们执行我们的任务,一次一次出色的闪光。

更多资源
版权所有©2023 LobeHub。
该项目已获得MIT许可。