ไลบรารี TTS/STT คุณภาพสูงและเชื่อถือได้สำหรับเซิร์ฟเวอร์และเบราว์เซอร์
เอกสาร· Changelog ·รายงานข้อผิดพลาด·คุณลักษณะการร้องขอ
- Lobe Chat รองรับ Text-to-Speech (TTS) และเทคโนโลยีการพูดเป็นข้อความ (STT) ทำให้แอปพลิเคชันของเราสามารถแปลงข้อความเป็นเอาต์พุตเสียงที่ชัดเจนทำให้ผู้ใช้สามารถโต้ตอบกับตัวแทนการสนทนาของเราราวกับว่าพวกเขากำลังพูดคุยกับคนจริง ผู้ใช้สามารถเลือกเสียงที่หลากหลายเพื่อจับคู่กับตัวแทน
ในกระบวนการใช้คุณสมบัตินี้เราพบว่าไม่มีห้องสมุดส่วนหน้า TTS (ข้อความเป็นคำพูด) ที่น่าพอใจในตลาด เป็นผลให้เราลงทุนอย่างมากรวมถึงการแปลงข้อมูลการจัดการความคืบหน้าเสียงและการสร้างภาพเสียงพูดท่ามกลางงานอื่น ๆ
บันทึก
ดังนั้นเราจึงตัดสินใจปรับแต่งการนำไปปฏิบัติและทำให้เป็นโอเพนซอร์สหวังว่าจะช่วยเหลือนักพัฒนาที่ต้องการใช้ TTS @Lebehub/TTS เป็นชุดเครื่องมือ TTS คุณภาพสูงที่พัฒนาขึ้นใน 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 เราจึงต้องใช้ 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