Perpustakaan TTS/STT berkualitas tinggi & andal untuk server dan browser
Dokumen · Changelog · Laporkan Bug · Fitur Permintaan
? Lobe Chat mendukung teknologi Text-to-Speech (TTS) dan Bicara-ke-Teks (STT), memungkinkan aplikasi kami untuk mengubah pesan teks menjadi output suara yang jelas, memungkinkan pengguna untuk berinteraksi dengan agen percakapan kami seolah-olah mereka berbicara dengan orang sungguhan. Pengguna dapat memilih dari berbagai suara untuk dipasangkan dengan agen.
Dalam proses menerapkan fitur ini, kami menemukan bahwa tidak ada perpustakaan frontend TTS (teks-ke-speech) yang memuaskan yang tersedia di pasaran. Akibatnya, kami menginvestasikan banyak upaya, termasuk konversi data, manajemen kemajuan audio, dan visualisasi bicara, di antara tugas -tugas lainnya.
Catatan
Oleh karena itu, kami memutuskan untuk memperbaiki implementasi kami dan menjadikannya open source, berharap dapat membantu pengembang yang ingin mengimplementasikan TTS. @Lobehub/TTS adalah toolkit TTS berkualitas tinggi yang dikembangkan di TypeScript, yang mendukung penggunaan baik di sisi server maupun di browser.
Jalankan skrip di bawah ini gunakan 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 ) ;Penting
Jalankan di Node.js
Karena lingkungan Node.js tidak memiliki instance WebSocket , kita perlu Polyfill Websocket. Ini dapat dilakukan dengan mengimpor paket 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 >
) ;
} ;Penting
Paket ini hanya ESM.
Untuk menginstal @lobehub/tts , jalankan perintah berikut:
$ pnpm i @lobehub/tts$ bun add @lobehub/ttsCatatan
Dengan bekerja dengan benar dengan SSR Next.js, tambahkan transpilePackages: ['@lobehub/tts'] ke next.config.js . Misalnya:
const nextConfig = {
transpilePackages : [ '@lobehub/tts' ] ,
} ; Anda dapat menggunakan codespaces github untuk pengembangan online:
Atau mengkloningnya untuk pengembangan lokal:
$ git clone https://github.com/lobehub/lobe-tts.git
$ cd lobe-tts
$ bun install
$ bun devKontribusi dari semua jenis lebih dari disambut, jika Anda tertarik untuk berkontribusi kode, jangan ragu untuk memeriksa masalah GitHub kami agar terjebak untuk menunjukkan kepada kami apa yang Anda buat.
Setiap jumlah bit dan donasi satu kali Anda berkilau di galaksi dukungan kami! Anda seorang bintang jatuh, membuat dampak cepat dan cerah pada perjalanan kami. Terima kasih telah mempercayai kami - kemurahan hati Anda memandu kami menuju misi kami, satu flash yang cemerlang sekaligus.

Lebih banyak sumber daya
Hak Cipta © 2023 Lobehub.
Proyek ini berlisensi MIT.