Thứ bảy, 20/09/2025

Bạn muốn sử dụng API để tạo âm thanh từ văn bản (Text-to-Speech - TTS), tức là:

Lấy văn bản từ một trang web → chuyển nó thành giọng nói → có thể nghe được hoặc tải xuống file âm thanh.

OpenAI hiện đã hỗ trợ tính năng này thông qua Text-to-Speech API (mới, rất mạnh và tự nhiên). Dưới đây là hướng dẫn chi tiết từng bước.


Mục tiêu

Tạo một chương trình Python:

  1. Truy cập một URL (trang web)
  2. Lấy nội dung văn bản
  3. Gửi văn bản đó đến OpenAI TTS API
  4. Tạo ra file âm thanh (MP3) từ văn bản

Công cụ cần thiết

1. Cài thư viện Python

pip install openai beautifulsoup4 requests


Bước 1: Lấy văn bản từ trang web

Sử dụng requests + BeautifulSoup để trích xuất nội dung HTML.

import requests

from bs4 import BeautifulSoup

 

def extract_text_from_url(url):

    response = requests.get(url)

    soup = BeautifulSoup(response.text, "html.parser")

   

    # Lấy nội dung văn bản chính (tùy vào trang, bạn có thể tùy chỉnh thêm)

    paragraphs = soup.find_all('p')

    text = "\n".join(p.get_text() for p in paragraphs if p.get_text())

   

    return text.strip()


Bước 2: Sử dụng OpenAI Text-to-Speech (TTS)

import openai

 

openai.api_key = "sk-..."  # Thay bằng API key của bạn

 

def text_to_speech(text, output_filename="output.mp3"):

    response = openai.audio.speech.create(

        model="tts-1",  # hoặc tts-1-hd

        voice="nova",  # giọng đọc: nova, alloy, shimmer, echo, fable, onyx

        input=text

    )

 

    # Ghi file âm thanh

    with open(output_filename, "wb") as f:

        f.write(response.content)

   

    print(f"Đã lưu file âm thanh tại: {output_filename}")


Bước 3: Kết hợp tất cả lại

def main():

    url = "https://example.com"  # 👉 Thay bằng URL thật

    text = extract_text_from_url(url)

   

    print("Đang chuyển văn bản thành âm thanh...")

    text_to_speech(text[:4096])  # Giới hạn 4096 ký tự cho mỗi lần gọi API

 

if __name__ == "__main__":

    main()

Giới hạn: OpenAI hiện cho phép tối đa 4096 ký tự cho mỗi request TTS. Nếu văn bản dài hơn, bạn cần chia nhỏ đoạn văn và chuyển từng phần.


Gợi ý giọng đọc

Giọng đọc

Mô tả

alloy

Nam, trung tính, tự nhiên

echo

Trung tính, ấm áp

fable

Giọng kể chuyện, nữ tính

nova

Nữ, rõ ràng, tự nhiên

onyx

Nam, mạnh mẽ

shimmer

Giọng nhẹ nhàng, quyến rũ


Thử nghiệm nhanh? (Không cần code)


Kết quả

Sau khi chạy chương trình, bạn sẽ có một file output.mp3 chứa giọng đọc của bài viết trên web.

Bạn có thể dùng thêm playsound hoặc pygame để phát âm thanh trong Python nếu muốn.

Công nghệ mới    

Tin liên quan

Top