Высококачественная и надежная библиотека TTS/STT для сервера и браузера
Документы · ChangeLog · Отчет об ошибке · Функция запроса
? Чат Lobe поддерживает технологии текста в речь (TTS) и речи в тексте (STT), что позволяет нашему приложению преобразовать текстовые сообщения в четкие голосовые выходы, позволяя пользователям взаимодействовать с нашим разговорным агентом, как если бы они разговаривали с реальным человеком. Пользователи могут выбирать из множества голосов в сочетании с агентом.
В процессе реализации этой функции мы обнаружили, что на рынке не было удовлетворительной библиотеки TTS (текстовый до речи). В результате мы вложили много усилий, включая преобразование данных, управление прогрессом аудио и визуализацию речи, среди других задач.
Примечание
Поэтому мы решили уточнить нашу реализацию и сделать ее открытым исходным кодом, надеясь помочь разработчикам, которые хотят реализовать TTS. @LOBEHUB/TTS-это высококачественный TTS Toolkit, разработанный в TypeScript, который поддерживает использование как на стороне сервера, так и в браузере.
Запустите сценарий ниже. Используйте 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 , нам нужно полифиль 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Примечание
На работе правильно с SSES SSR, добавьте transpilePackages: ['@lobehub/tts'] в next.config.js . Например:
const nextConfig = {
transpilePackages : [ '@lobehub/tts' ] ,
} ; Вы можете использовать GitHub CodeSepaces для онлайн -разработки:
Или клонировать его для местного развития:
$ git clone https://github.com/lobehub/lobe-tts.git
$ cd lobe-tts
$ bun install
$ bun devВзносы всех типов более чем приветствуются, если вы заинтересованы в сопоставлении кода, не стесняйтесь проверить наши проблемы с GitHub, чтобы застрять, чтобы показать нам, из чего вы сделаны.
Каждый бит считается, и ваше одноразовое пожертвование сверкает в нашей галактике поддержки! Вы стреляющая звезда, оказывая быстрое и яркое влияние на наше путешествие. Спасибо, что поверили в нас - ваша щедрость направляет нас к нашей миссии, по одной блестящей вспышке за раз.

Больше ресурсов
Copyright © 2023 Lobehub.
Этот проект лицензирован MIT.