Skip to content
··8 phút đọc

DIALØGUE: Xây dựng trình tạo podcast bằng AI từ đầu (Và học được rất nhiều điều)

Tôi đã xây dựng một trình tạo podcast AI cho phép bạn định hình nội dung trước khi nó được tạo — vì tôi chán nghe AI đọc Wikipedia cho tôi trên đường đi làm.

Tia lửa: Tại sao xây dựng trình tạo podcast?

Chuyện là thế này — tôi yêu podcast. Là người dành quá nhiều thời gian trong xe (xin chào, những bạn đồng hành đi làm!), tôi luôn tự hỏi: nếu tôi có thể tạo podcast về bất kỳ chủ đề nào tôi tò mò thì sao? Không phải giọng AI nhàm chán đọc Wikipedia, mà là cuộc trò chuyện hấp dẫn thực sự giữa các host AI.

Thêm nữa, thành thật mà nói, sau khi xây dựng nhiều dự án nhỏ hơn và viết về hành trình học code, tôi muốn thử thách thứ gì đó lớn hơn. Thứ gì đó đẩy tôi phải học công nghệ mới và có thể tạo ra thứ hữu ích cho người khác. :P

DIALØGUE là gì?

DIALØGUE là một ứng dụng giai đoạn đầu (alpha) tạo podcast chuyên nghiệp bằng AI. Bạn đưa ra chủ đề — bất cứ thứ gì từ "Quyết định của Fed và tác động thị trường năm 2025" đến "Tìm hiểu điện toán lượng tử cho người mới" — và nó tạo ra podcast hoàn chỉnh hơn 20 phút với nhiều giọng AI trò chuyện thực sự.

Đây là điểm khác biệt so với việc chỉ nhờ ChatGPT đọc bài viết cho bạn:

  • Xem xét outline tương tác: Đây là điểm thay đổi cuộc chơi — trước khi bất kỳ nghiên cứu hay viết nào diễn ra, bạn được xem outline đề xuất và định hình nó theo ý muốn
  • Nội dung dựa trên nghiên cứu: Sử dụng công cụ tìm kiếm để nghiên cứu thực tế và thông tin hiện tại
  • Đối thoại tự nhiên: Claude Sonnet 4 viết kịch bản đối thoại
  • Nhiều giọng nói: Giọng neural chất lượng cao với các tính cách host khác nhau

Toàn bộ quy trình mất khoảng 10 phút từ chủ đề đến file audio hoàn thiện. Không tệ cho thứ mà con người mất hàng giờ hoặc ngày để sản xuất!

Tech Stack: Một cuộc phiêu lưu Serverless (Đã tiến hóa)

Được rồi, hãy đi vào chi tiết kỹ thuật (phần yêu thích của tôi!). Đây là thứ đang vận hành DIALØGUE:

Frontend

- Next.js 15 + React 19: Vì tôi muốn dùng công nghệ mới nhất

- TypeScript: Sau khi bị runtime error hành đủ lần

- Tailwind CSS: Làm styling dễ hơn nhiều cho người không phải design wizard

- Supabase JS Client: Cho auth và cập nhật real-time (thay đổi cuộc chơi)

Backend (Hiện tại - GCP)

- Cloud Run: Hơn 10 microservice Python container hóa với tự động mở rộng

- Cloud Workflows: Điều phối workflow trước feedback (outline) và sau feedback (generation)

- Cloud Storage: Lưu trữ file audio với CDN delivery

- API Gateway: Điểm truy cập duy nhất với CORS và authentication

- Supabase: PostgreSQL database với Row Level Security và Edge Functions

*Lưu ý: Ban đầu xây trên AWS Lambda/Step Functions, nhưng chuyển sang GCP tháng 7/2025 để hiệu suất tốt hơn và giảm 92% chi phí tạo audio.*

Dịch vụ AI

- Claude 4.0 Sonnet: Tạo kịch bản với temperature 0 cho độ tin cậy JSON (API trực tiếp Anthropic)

- Perplexity AI: Nghiên cứu và kiểm chứng thực tế cho từng segment

- OpenAI TTS: Giọng neural chất lượng cao cho cuộc trò chuyện tự nhiên

- Content Moderation: Kiểm tra an toàn tích hợp của Anthropic

Tính năng chính và hành trình người dùng

Đây là cách hoạt động từ góc nhìn người dùng:

1. Nhập chủ đề: Input văn bản đơn giản, không phức tạp

2. AI tạo outline: Mất khoảng 1 phút — bạn sẽ thấy cấu trúc và segment đề xuất

3. Xem xét và định hình podcast: Đây là nơi DIALØGUE thực sự tỏa sáng! Bạn có thể:

- Chuyển hướng trọng tâm ("Làm cho thân thiện hơn với người mới")

- Thêm ngữ cảnh thiếu ("Bao gồm các phát triển gần đây năm 2025")

- Xóa hoặc chỉnh sửa segment ("Bỏ thuật ngữ kỹ thuật ở segment 3")

- Thay đổi hoàn toàn hướng đi nếu AI hiểu sai ý bạn

4. Tạo podcast đầy đủ: Sau khi bạn duyệt outline, quá trình tạo mất ~6-10 phút

5. Tải về và thưởng thức: File MP3 sẵn sàng cho đường đi làm

Đằng sau hậu trường, nó làm nhiều hơn thế:

- Chia chủ đề thành các segment

- Chờ sự phê duyệt của bạn trước các thao tác tốn tài nguyên (không lãng phí credit cho nội dung không mong muốn!)

- Nghiên cứu từng segment với truy vấn cụ thể

- Viết đối thoại tự nhiên giữa hai AI host

- Xử lý lỗi tao nhã (và hoàn credit nếu có sự cố)

- Cập nhật tiến độ real-time để bạn biết đang xảy ra gì

Điểm tốt, thách thức, và những khoảnh khắc "Ôi không"

Điểm tốt

- Tính năng xem xét outline: Người dùng thích được định hình podcast trước khi bắt đầu tạo. Giống như trò chuyện với producer AI!

- Cải thiện hiệu suất 10 lần bằng cách chuyển sang truy vấn Supabase trực tiếp (450ms → 45ms)

- Đăng ký người dùng tức thì: Sửa bug delay 3 phút với Edge Functions nguyên tử (giờ < 500ms)

- Hoàn credit tự động khi tạo thất bại qua database triggers

- Cập nhật real-time thực sự hoạt động (cảm ơn, Supabase!)

- Giảm 92% chi phí tạo audio sau khi chuyển sang GCP

- Kiến trúc database-first sạch sẽ sau khi xóa code legacy Lambda

Thách thức (Đã giải quyết!)

- Địa ngục Lambda layer AWS: Lỗi import, giới hạn kích thước 250MB (giải quyết bằng chuyển sang GCP)

- Migration bảo mật JWT: Nâng cấp từ HS256 lên P-256 trong khi duy trì tương thích ngược

- Cài đặt temperature AI: Claude ở 0.7 tạo JSON không hợp lệ 30% (sửa bằng temperature 0)

- Rò rỉ bộ nhớ WebSocket: Component React rò 50MB/giờ (sửa bằng RealtimeManager)

- Race conditions database: Người dùng mới đợi 3 phút do replication lag (sửa bằng atomic operations)

- Phức tạp hệ thống credit: Đơn giản hóa từ dual credits sang single type

Những khoảnh khắc "Ôi không"

- Lần tôi vô tình lưu dữ liệu workflow quan trọng sai chỗ

- Khi phát hiện lỗi trình duyệt bí ẩn do chính code của tôi hết tài nguyên

- Phát hiện lỗ hổng bảo mật trong lần kiểm tra định kỳ (đã sửa hết!)

Tôi đã học được gì (Spoiler: Rất nhiều)

Dự án này đẩy tôi rất xa khỏi vùng thoải mái, và tôi học được rất nhiều:

1. Quyền kiểm soát của người dùng là thiết yếu: Tính năng xem xét outline không nằm trong thiết kế ban đầu, nhưng trở thành tính năng quan trọng nhất. Cho người dùng định hình nội dung trước khi tạo tiết kiệm thời gian, credit, và sự thất vọng

2. Bắt đầu đơn giản, chuyển đổi khi cần: Chúng tôi bắt đầu với AWS Lambda nhưng gặp tường phức tạp — chuyển sang Cloud Run giải quyết mọi thứ

3. Truy vấn database trực tiếp có thể nhanh hơn: Cải thiện hiệu suất 10 lần đến từ việc bỏ các lớp API không cần thiết

4. Chi phí AI cộng dồn: Chạy nhiều dịch vụ AI cho một podcast cần quản lý chi phí cẩn thận

5. Trải nghiệm người dùng quan trọng: Thêm indicator tiến độ và ước tính thời gian tạo khác biệt lớn

6. Bảo mật không bao giờ "xong": Kiểm tra định kỳ phát hiện vấn đề tôi chưa bao giờ nghĩ đến

7. Infrastructure as Code có bẫy: Các quirk của SAM dạy tôi nhiều điều (như SSMParameterReadPolicy thêm dấu gạch chéo!)

8. Chuyển đổi cloud có thể nhanh đáng ngạc nhiên: Với AI pair programming, chúng tôi chuyển từ AWS sang GCP chỉ trong một ngày!

Trạng thái hiện tại và tiếp theo

DIALØGUE giờ đã chạy! Đang ở giai đoạn alpha với 2 credit miễn phí cho người dùng mới.

Về giá cả — tôi phải thừa nhận, tôi dành quá nhiều thời gian cân nhắc chuyện này. Mỗi podcast tốn tiền thật để tạo (API Claude cho kịch bản, Perplexity cho nghiên cứu, OpenAI cho tổng hợp giọng — cộng dồn nhanh lắm). Tôi chọn các gói credit xấp xỉ bù chi phí với biên lợi nhuận nhỏ: Starter $4.99 cho 4 podcast, Pro $9.99 cho 9, và Bulk $19.99 cho 18. Tôi có thể điều chỉnh khi hiểu thêm về mô hình sử dụng thực tế, nhưng hiện tại chúng có vẻ hợp lý. Và nếu quá trình tạo thất bại vì lý do kỹ thuật, credit được hoàn tự động — tôi không tính phí bạn vì bug của tôi :P

Muốn thử?

Tôi rất muốn bạn thử! Hãy vào podcast.chandlernguyen.com và tạo podcast AI đầu tiên. 2 podcast đầu miễn phí, nên bạn không mất gì.

Cảnh báo: vẫn đang ở alpha, nên có thể hỏng. Nhưng hey, đó là phần vui, đúng không? Nếu gặp vấn đề, có tính năng feedback ngay trong app (chỉ cho người dùng đã đăng nhập — phải thêm sau vài vấn đề spam).

Suy nghĩ cuối

Xây dựng DIALØGUE là một trong những dự án thử thách và đáng làm nhất tôi đã thực hiện. Nó kết hợp mọi thứ tôi học được — từ AWS Lambda functions đến React components đến AI prompt engineering — và thậm chí dẫn đến hành trình chuyển đổi cloud bất ngờ.

Khám phá ngạc nhiên nhất? Bước xem xét outline tôi đề cập trước đó. Ban đầu, tôi nghĩ người dùng chỉ muốn nhập chủ đề và nhận podcast. Nhưng khi test, tôi nhận ra rằng cho người dùng kiểm soát hướng đi trước khi quá trình tạo chính bắt đầu tạo nên sự khác biệt hoàn toàn. Nó biến công cụ từ hộp đen thành trợ lý AI cộng tác. Cùng insight đó — định hướng sáng tạo của con người trên nền thực thi AI — trở thành bài học trung tâm khi tôi sau đó xây dựng ứng dụng iOS native của DIALØGUE mà không biết Swift.

Nó hoàn hảo chưa? Chưa. Nó hữu ích không? Tôi nghĩ vậy! Ít nhất, đó là hành trình học tập tuyệt vời, và tôi háo hức xem nó đi đến đâu từ đây.

Bạn sẽ tạo podcast về gì? Tôi thực sự tò mò — nhắn tin cho tôi hoặc tự thử. Biết đâu, với khả năng định hình và hướng dẫn nội dung, podcast AI của bạn có thể chính là thứ bạn đang tìm kiếm. :P

Thân mến, Chandler

Muốn đi sâu vào kỹ thuật? Theo dõi toàn bộ hành trình:

Đọc tiếp

Hành trình
Kết nối
Ngôn ngữ
Tùy chọn