1. ภาพรวมของโมเดลเสียง
1.1. การแนะนำเกี่ยวกับโมเดล TTS และ STT ของ OpenAI
โมเดลการแปลงข้อความเป็นเสียง (TTS)
โมเดล TTS ของ OpenAI สามารถแปลงข้อมูลข้อความเป็นเสียงออกมาได้ กระบวนการนี้รวมถึงการวิเคราะห์ข้อความ การประยุกต์ใช้อัลกอริทึมการสังเคราะห์เสียง และการปรับปรุงคุณภาพของเสียง มันทำให้คอมพิวเตอร์สามารถอ่านข้อความทุกรูปแบบ ทำให้เนื้อหามีความเข้าใจและสามารถเข้าถึงได้ง่ายขึ้น โมเดล TTS เป็นเทคโนโลยีที่สำคัญสำหรับผู้ทุพพลภาพทางสายตา พนักงานขับรถ หรือผู้ที่ต้องการรับข้อมูลผ่านทางการฟัง
โมเดลการแปลงเสียงเป็นข้อความ (STT)
ในการตอบรับ TTS โมเดล STT สามารถแปลงข้อมูลเสียงเป็นข้อความ ขณะทำงานกับข้อมูลเสียงเข้าทางต้นทาง ระบบ STT จะทำการตรวจจับเสียงก่อน ตามด้วยการสกัดลักษณะเฉพาะของเสียงออกมา จากนั้นจะแปลงสัญญาณเสียงเป็นคำศัพท์โดยใช้โมเดลทั้งสัญญาณเสียงและภาษา ซึ่งสุดท้ายแล้วจะสร้างเอาต์พุตของข้อความออกมา เทคโนโลยี STT ใช้กันอย่างแพร่หลายในการรับรู้เสียงการระบุคำและสร้างคำบรรยายแบบสดเทียนในขณะเดียวกัน
1.2. สถานการณ์การใช้งาน
- การอ่านบล็อกออกเสียง
- การสร้างเสียงหลากหลายภาษา
3. การใช้งาน API ในการแปลงข้อความเป็นเสียง
3.1. การเริ่มต้นอย่างรวดเร็ว
ในส่วนนี้ เราจะมาแสดงตัวอย่างการแปลงข้อความเป็นเสียงออกมาโดยใช้คำสั่ง curl และไคลเอ็นต์ Python ไม่ว่าคุณจะเป็นนักพัฒนาหรือผู้ใช้ที่ไม่มีความรู้ด้านเทคนิค คุณสามารถสร้างไฟล์เสียงได้อย่างง่ายดายโดยเพียงแค่ส่งคำขอ API
การส่งคำขอผ่าน Curl
ในการสร้างเสียงโดยใช้เครื่องมือสายคำสั่ง curl คุณสามารถทำตามขั้นตอนต่อไปนี้:
- ตรวจสอบว่า curl ได้ถูกติดตั้งบนระบบของคุณและว่าคุณมีคีย์ API ที่ถูกต้อง
- ใช้คำสั่ง curl ต่อไปนี้เพื่อแปลงข้อความเป็นเสียง:
curl https://api.openai.com/v1/audio/speech \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "tts-1",
"input": "Today is a great day to build products people love!",
"voice": "alloy"
}' \
--output speech.mp3
ในคำสั่งข้างต้น $OPENAI_API_KEY
แทนด้วยคีย์ API ของคุณ ฟิลด์ input
คือข้อความที่คุณต้องการแปลง ฟิลด์ model
ระบุโมเดลเสียงที่ให้ใช้ และพารามิเตอร์ voice
เลือกเสียง เราเลือกใช้เสียงโลหะระบุเสียง alloy
ที่นี่ ตัวเลือก --output
ระบุชื่อและรูปแบบของไฟล์ออกพุต
การใช้ Python Client
หากคุณต้องการใช้งานภาษาโปรแกรม Python คุณสามารถใช้ตัวอย่างโค้ดต่อไปนี้:
from openai import OpenAI
client = OpenAI()
response = client.audio.speech.create(
model="tts-1",
voice="alloy",
input="Today is a great day to build products people love!"
)
response.stream_to_file("output.mp3")
ในช็อตโค้ดนี้ เราเริ่มต้นโดยการนำเข้าไลบรารี openai
และสร้างอินสแตนซ์ของไคลเอนต์ OpenAI จากนั่นเราใช้วิธี audio.speech.create
ในการส่งคำขอ โดยระบุโมเดลเสียง เสียง และข้อความที่ต้องการแปลง ในที่สุดเราใช้วิธี stream_to_file
เพื่อบันทึกสตรีมเสียงที่สร้างไว้ในไฟล์
3.2. เลือกคุณภาพเสียงและเสียงที่เหมาะสม
การเลือกคุณภาพเสียงและเสียงที่เหมาะสมสำหรับโครงการของคุณเป็นขั้นตอนที่สำคัญในการรับประสบการณ์ผู้ใช้ที่ดีที่สุด ไอพีของเรามีวิธีเลือกสองตัวเลือกรุ่น เสียงที่มีคุณภาพต่ำ กระชับกับที่ทำให้เหมาะสำหรับการใช้งานเรียลไทม์ แต่มีคุณภาพเสียงที่ต่ำลงอย่างสัมพันธ์
และอีกอันคือ tts-1-hd
ที่มีคุณภาพเสียงที่ดีที่สุดเหมาะสำหรับการใช้งานที่ไม่ใช่เรียลไทม์ในการสร้างเสียงที่มีคุณภาพสูง
นอกจากนี้ ไอพีของ OpenAI TTS API ยังมีตัวเลือกเสียงที่หลากหลายเช่น
- Alloy
- Echo
- Fable
- Onyx
- Nova
- Shimmer โดยขึ้นอยู่กับข้อกำหนดโปรเจกต์และกลุ่มเป้าหมายของคุณ คุณสามารถทดลองตัวอย่างเสียงต่าง ๆ ให้เลือกเสียงที่เหมาะสมที่สุด คำนึงถึงปัจจัยเช่น สไตล์พูด อัตราการพูด และการแสดงอารมณ์เพื่อหาเสียงที่สามารถสื่อถึงอารมณ์และความพิถีพิถันอย่างเหมาะสม
3.3. รูปแบบและภาษาที่รองรับ
API ของ OpenAI TTS มีการตั้งค่าเริ่มต้นใช้รูปแบบออกพุตเป็น MP3 แต่ยังรองรับรูปแบบเสียงอื่น ๆ หลายรูปแบบเช่น
- Opus: เหมาะสำหรับการสตรีมมิงและการสื่อสารผ่านอินเตอร์เน็ต ที่มีการละเลยในการเดินเวลา
- AAC: ใช้สำหรับการบีบอัดข้อมูลเสียงหมุนตรวจเป็นรูปแบบที่ชุตรูปที่รับการตั้งค่าไว้
- FLAC: รูปแบบการบีบอัดเสียงที่ไม่สูญเสียที่บุรุษโดยนักสนับหูและผู้รักษาไว้ให้เหมาะสมในการเก็บไว้ใช้
เรื่องภาษา ไอพีของเราโดยส่วนใหญ่จะทำตามโมเดล Whisper ซึ่งมีการเลือกภาษาแบ่งแยกในระดับประเทศหลายประเทศ
3.4. ฟังก์ชันการสตรีมเสียงแบบเรียลไทม์
เพื่อตอบสนองต่อความต้องการของแอปพลิเคชันแบบเรียลไทม์ ไอ้พีไอของเรามีการสนับสนุนสำหรับฟังก์ชันการสตรีมเสียงแบบเรียลไทม์ ด้านล่างนี้คือตัวอย่าง Python สำหรับการดำเนินการสตรีมเสียงแบบเรียลไทม์:
from openai import OpenAI
client = OpenAI()
response = client.audio.speech.create(
model="tts-1",
voice="alloy",
input="สวัสดีโลก! นี่คือการทดสอบการสตรีม",
)
response.stream_to_file("output.mp3")
4. อปีเอพีสำหรับแปลงเสียงเป็นข้อความ
4.1. แนะนำการใช้งานเบื้องต้น
ในส่วนนี้ เราจะแนะนำความสามารถของ API ของ OpenAI สำหรับแปลงเสียงเป็นข้อความ
ต้องการ API key ที่ถูกต้องและเตรียมไฟล์เสียงก่อนที่จะเริ่ม
คุณสามารถใช้คำสั่ง curl
เพื่อส่งคำขอ POST ที่มีไฟล์เสียงอยู่ แทน OPENAI_API_KEY
ด้วย API key ของคุณ และตั้งค่าที่อยู่ของไฟล์ได้ที่
curl --request POST \
--url https://api.openai.com/v1/audio/transcriptions \
--header 'Authorization: Bearer OPENAI_API_KEY' \
--header 'Content-Type: multipart/form-data' \
--form file=@/path/to/your/audio/file.mp3 \
--form model=whisper-1
หลังจากที่ทำคำสั่งดังกล่าว คุณจะได้รับการตอบรับที่มีรูปแบบ JSON ที่บอกข้อมูลข้อความที่ถูกแปลเป็นข้อความ
ตัวอย่างเช่น:
{
"text": "มองฝันเกี่ยวกับความคิดที่ห่างเหินที่สุดซื่อ และคุณอยากรู้อยากเห็นว่ามันจะขยายขึ้นเป็นสิ่งที่ใหญ่ขนาด 100, 1,000 ครั้ง ..."
}
4.2. รูปแบบและขนาดไฟล์ที่รองรับ
API นี้สนับสนุนรูปแบบไฟล์เสียงที่ทั่วไป เพื่อตอบสนองต่อความต้องการในสถานการณ์ต่าง ๆ รูปแบบไฟล์ที่รองรับรวมถึงแต่ไม่จำกัดเพียง mp3
, mp4
, mpeg
, mpga
, m4a
, wav
, webm
เป็นต้น ซึ่งทำให้ผู้ใช้สามารถประมวลผลไฟล์เสียงจากแหล่งต่าง ๆ ได้โดยง่าย
สำหรับขนาดของไฟล์ ขณะนี้ API นี้มีขีดจำกัดที่ไม่เกิน 25MB นั่นหมายความว่าหากไฟล์เสียงของคุณมีขนาดใหญ่กว่า 25MB คุณจะต้องแบ่งเป็นช่วงที่น้อยกว่า 25MB หรือใช้รูปแบบการบีบอัดที่มีประสิทธิภาพมากขึ้น ตัวอย่างเช่น mp3
และ opus
โดยทั่วไปจะช่วยในการบีบอัดที่มีประสิทธิภาพ เพื่อลดขนาดไฟล์โดยไม่สูญเสียคุณภาพเสียงมากนัก
หากคุณพบไฟล์ที่มีขนาดมากกว่า 25MB คุณสามารถพิจารณาใช้ไลบรารี PyDub
ใน Python เพื่อแบ่งไฟล์เสียงของคุณ:
from pydub import AudioSegment
audio_file = AudioSegment.from_file("your_large_audio_file.mp3")
interval = 10 * 60 * 1000 # 10 นาที
chunks = make_chunks(audio_file, interval)
for i, chunk in enumerate(chunks):
chunk_name = f"audio_chunk{i}.mp3"
chunk.export(chunk_name, format="mp3")
ในโค้ดข้างต้น make_chunks
จะแบ่งไฟล์เสียงขนาดใหญ่เป็นช่วงเสียงหลายช่วงที่มีระยะเวลา 10 นาที ช่วงเหล่านี้อยู่ภายในขีดจำกัดขนาดไฟล์ที่ต้องการโดย API และสามารถอัปโหลดแยกออกไปที่ API ของ OpenAI เพื่อทำการแปลงเป็นข้อความ
โปรดทราบว่า ขณะที่ PyDub
ให้เรามีวิธีที่ง่ายสำหรับการจัดการไฟล์เสียง แต่ก็ยังแนะนำให้คุณใส่ความสำคัญเพิ่มเติมในเรื่องความปลอดภัยและความมั่นคงของซอฟต์แวร์ข้างที่เสมอของบุคคลที่สาม ไอ้พีไอไม่รับประกันการทำงานของซอฟต์แวร์ข้างที่ จากภายนอก