서버 및 브라우저 용 고품질 및 신뢰할 수있는 TTS/STT 라이브러리
문서 · ChangElog ·보고 버그 · 요청 기능
? Lobe Chat은 TTS (Text-To-Steece) 및 STT (Speech-to-Text) 기술을 지원하므로 응용 프로그램이 문자 메시지를 명확한 음성 출력으로 변환 할 수 있으므로 사용자는 실제 사람과 대화하는 것처럼 대화 에이전트와 상호 작용할 수 있습니다. 사용자는 다양한 목소리 중에서 선택하여 에이전트와 짝을 이룰 수 있습니다.
이 기능을 구현하는 과정에서 우리는 시장에서 이용할 수있는 만족스러운 TTS (텍스트 음성) 프론트 엔드 라이브러리가 없음을 발견했습니다. 결과적으로, 우리는 데이터 변환, 오디오 진행 관리 및 음성 시각화를 포함하여 많은 노력을 투자했습니다.
메모
따라서 우리는 구현을 개선하고 오픈 소스를 만들기로 결정했습니다. @lobehub/tts는 TypeScript에서 개발 된 고품질 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 인스턴스가 없으므로 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메모
JS SSR next.config.js 사용하여 작업을 수행하여 transpilePackages: ['@lobehub/tts'] 추가하십시오. 예를 들어:
const nextConfig = {
transpilePackages : [ '@lobehub/tts' ] ,
} ; 온라인 개발에 Github Codespace를 사용할 수 있습니다.
또는 지역 개발을 위해 복제 :
$ git clone https://github.com/lobehub/lobe-tts.git
$ cd lobe-tts
$ bun install
$ bun dev모든 유형의 기여는 환영하는 것 이상입니다. 코드를 기여하는 데 관심이 있다면 Github 문제를 확인하여 자신이 만든 것을 보여주기 위해 자유롭게 확인하십시오.
우리의 지원 은하에서 모든 비트 계산과 당신의 일회성 기부는 반짝입니다! 당신은 슈팅 스타로서 우리 여행에 신속하고 밝은 영향을 미칩니다. 우리를 믿어 주셔서 감사합니다 - 당신의 관대함은 우리의 사명, 한 번에 하나의 화려한 플래시를 안내합니다.

더 많은 자원
Copyright © 2023 Lobehub.
이 프로젝트는 MIT 라이센스가 부여되었습니다.