Mở khóa Trợ lý đối thoại AI Thời gian thực cho Điện thoại của Bạn

Mở khóa trợ lý đồng hành AI thời gian thực cho điện thoại của bạn. Xây dựng một công cụ mạnh mẽ có khả năng ghi lại và phân tích các cuộc trò chuyện theo thời gian thực, cung cấp các gợi ý và phản hồi ngay lập tức để cải thiện giao tiếp. Nâng cao các cuộc phỏng vấn, cuộc họp và tương tác xã hội của bạn với trợ lý được hỗ trợ bởi AI này.

19 tháng 2, 2025

party-gif

Bài đăng blog này khám phá tiềm năng của một trợ lý đối thoại AI thời gian thực có thể hỗ trợ các nhiệm vụ như phỏng vấn việc làm và nghiên cứu người dùng. Tác giả trình bày việc phát triển một ứng dụng web và di động tận dụng các mô hình chuyển đổi giọng nói thành văn bản và ngôn ngữ tiên tiến để cung cấp khả năng ghi chép và đề xuất ngay lập tức, nhấn mạnh lợi ích của một công cụ như vậy trong việc tăng cường giao tiếp và năng suất.

Giới thiệu về Trợ lý Đối thoại AI Thời gian Thực

Cách đây gần một năm, vào khoảng tháng 3 năm 2023, khi ChatGPT vừa ra mắt và trở thành chủ đề nóng hổi nhất trên thế giới, tôi còn nhớ rõ ràng đã thấy một bản demo từ Arony, nơi anh ấy đã xây dựng một "Interview Breaker" - một công cụ ChatGPT giúp bạn vượt qua các cuộc phỏng vấn việc làm. Tuần này, tôi đã xây dựng một thứ gọi là "Interview Breaker" - một bản chứng minh khái niệm được tạo ra bằng ChatGPT để vượt qua các cuộc phỏng vấn việc làm. Nó sẽ lấy kinh nghiệm trước đây của bạn, lắng nghe cuộc trò chuyện với người phỏng vấn của bạn và nói với bạn những gì cần nói, cung cấp cho bạn những thông tin mà bạn có thể không biết.

Thách thức trong Xây dựng Bản Ghi Thời gian Thực và Suy luận Nhanh

Với tư cách là một kiến trúc sư cao cấp, khi ưu tiên những gì cần tập trung cho một dịch vụ backend, tôi ưu tiên khả năng mở rộng. Loại công cụ này sẽ gây ra sự hỗn loạn trong quá trình phỏng vấn việc làm. Thông thường, khi những công nghệ lớn như máy tính hoặc internet xuất hiện, chúng sẽ thay đổi tất cả các quy trình đã xuất hiện trước đó. Điều đó có nghĩa là một số câu hỏi này có thể không còn phù hợp để hỏi nữa nếu chúng ta nhìn xa hơn vào tương lai.

Xây dựng Demo Trợ lý Đối thoại Dựa trên Web

Tôi nghĩ đó là một ý tưởng tuyệt vời vì lúc đó, tôi thực sự đang trải qua một số quy trình phỏng vấn việc làm, vì vậy tôi sẽ rất muốn có một công cụ thời gian thực có thể giúp tôi vượt qua nó. Tôi thực sự đã cố gắng xây dựng mẫu đó nơi nó sử dụng một mô hình chuyển đổi giọng nói thành văn bản để tạo ra bản ghi và cũng sử dụng một mô hình ngôn ngữ lớn để tạo ra câu trả lời, nhưng mẫu đó không bao giờ hoạt động tốt trong thực tế. Một trong những yêu cầu khó khăn đối với những người đồng hành phỏng vấn hoặc trợ lý cuộc trò chuyện thời gian thực đó là họ phải có độ trễ thấp và thời gian thực. Nếu nó mất 30-40 giây để tạo ra một số kết quả, thì nó sẽ không thực sự hoạt động. Rất tiếc, đó là trường hợp vào tháng 3 năm ngoái, vì cả mô hình chuyển đổi giọng nói thành văn bản và mô hình ngôn ngữ lớn đều mất khá nhiều thời gian để suy luận. Đây là một dự án đơn giản về mặt lý thuyết, nhưng rất khó để xây dựng một sản phẩm có thể sử dụng được trong thực tế.

Tận dụng Whisper Kit để Xây dựng Trợ lý Đối thoại Di động

Tuy nhiên, một vài tháng sau, tôi đã thấy một sản phẩm khác trình diễn một kịch bản tương tự nhưng với hiệu suất gần như thời gian thực. Trong kỹ thuật hàng không vũ trụ, chẳng hạn như trong động cơ phản lực hoặc tái nhập khí quyển của tàu vũ trụ, bạn tiếp cận những thách thức này như thế nào?

Kết luận

Có hai thành phần chính để xây dựng một người đồng hành cuộc trò chuyện thời gian thực: bản ghi thời gian thực và suy luận nhanh.

Bản ghi thời gian thực

Đạt được phiên thoại thời gian thực là một trong những thách thức lớn nhất. Các mô hình chuyển đổi giọng nói thành văn bản thông thường như Whisper không được thiết kế cho các kịch bản phát trực tuyến, nơi âm thanh được xử lý từng phần nhỏ thay vì toàn bộ bản ghi.

Để vượt qua điều này, một giải pháp phổ biến là tạo một vòng lặp lặp đi lặp lại liên tục ghi nhận các phần âm thanh nhỏ (ví dụ: mỗi 2-5 giây), gửi chúng đến mô hình chuyển đổi giọng nói thành văn bản và ghép các bản ghi nhỏ lại với nhau. Cách tiếp cận này yêu cầu các tối ưu hóa để đảm bảo độ chính xác, chẳng hạn như so sánh dấu thời gian của các từ nối để tăng cường bản ghi cuối cùng.

May mắn thay, công nghệ chuyển đổi giọng nói thành văn bản đã phát triển nhanh chóng và hiện có các giải pháp cho phép ghi âm thời gian thực, chẳng hạn như sử dụng các mô hình cực kỳ nhanh được lưu trữ trên các nền tảng như Replicate hoặc triển khai các mô hình nhẹ như Whisper Kit trực tiếp trên các thiết bị di động.

Suy luận nhanh

Thách thức thứ hai là đạt được suy luận rất nhanh với mô hình ngôn ngữ lớn để tạo ra các gợi ý trong thời gian thực. Để giải quyết vấn đề này:

  1. Chọn một mô hình ngôn ngữ nhanh và nhỏ: Các mô hình như Meteo 7B nhỏ hơn và nhanh hơn nhiều so với GPT-4, cho phép tạo ra phản hồi nhanh hơn với ít tài nguyên tính toán hơn.

  2. Giảm kích thước đầu vào: Khi cuộc trò chuyện kéo dài, đầu vào của mô hình ngôn ngữ có thể trở nên quá lớn. Các kỹ thuật như tóm tắt mô hình ngôn ngữ có thể được sử dụng để trích xuất chỉ thông tin liên quan và giảm kích thước đầu vào.

  3. Tối ưu hóa việc tạo đầu ra: Có thể thực hiện thêm các tối ưu hóa để giảm số lượng token đầu ra, chẳng hạn như sử dụng các phương pháp kỹ thuật nhập liệu.

Bằng cách kết hợp các kỹ thuật này cho bản ghi thời gian thực và suy luận nhanh, có thể xây dựng một người đồng hành cuộc trò chuyện thời gian thực rất phản hồi, có thể cung cấp các gợi ý và hỗ trợ có giá trị trong các cuộc trò chuyện.

Để xây dựng một bản demo trợ lý cuộc trò chuyện dựa trên web, chúng ta sẽ sử dụng sự kết hợp của Flask (một framework web Python) và Replicate (một nền tảng để chạy các mô hình AI nguồn mở).

Các thành phần chính là:

  1. Bản ghi thời gian thực: Chúng tôi sẽ sử dụng một mô hình chuyển đổi giọng nói thành văn bản nhanh từ Replicate để tạo ra bản ghi thời gian thực của cuộc trò chuyện. Điều này bao gồm việc liên tục ghi nhận các phần âm thanh nhỏ, gửi chúng đến mô hình chuyển đổi giọng nói thành văn bản và ghép kết quả lại với nhau.

  2. Suy luận nhanh: Chúng tôi sẽ sử dụng một mô hình ngôn ngữ nhỏ và nhanh từ Replicate (như Minitram) để tạo ra các gợi ý và câu trả lời dựa trên bản ghi trong thời gian thực. Chúng tôi cũng sẽ khám phá các kỹ thuật như giảm kích thước đầu vào và tóm tắt cuộc trò chuyện để cải thiện tốc độ.

Ứng dụng web sẽ có các tính năng sau:

  • Một trường nhập văn bản để người dùng cung cấp ngữ cảnh về cuộc trò chuyện.
  • Một nút "Ghi âm" để bắt đầu và dừng việc ghi âm.
  • Một nút "Nhận gợi ý" để kích hoạt mô hình ngôn ngữ và nhận được các gợi ý.
  • Một màn hình hiển thị bản ghi thời gian thực.
  • Một màn hình hiển thị các gợi ý được tạo ra.

Dưới đây là quy trình từng bước:

  1. Thiết lập ứng dụng Flask:

    • Tạo tệp app.py và nhập các thư viện cần thiết, bao gồm cả SDK Python của Replicate.
    • Định nghĩa các tuyến đường Flask cho trang chủ và điểm cuối xử lý âm thanh.
    • Thiết lập thùng chứa AWS S3 và thông tin đăng nhập để lưu trữ tạm thời các bản ghi âm.
  2. Triển khai chức năng bản ghi thời gian thực:

    • Sử dụng mô hình Whisper của Replicate để liên tục ghi nhận và phiên thoại các phần âm thanh.
    • Tối ưu hóa bản ghi bằng cách xử lý ranh giới từ và duy trì ngữ cảnh giữa các phần.
  3. Triển khai chức năng suy luận nhanh:

    • Sử dụng mô hình Minitram (hoặc một mô hình ngôn ngữ nhỏ, nhanh tương tự) của Replicate để tạo ra các gợi ý dựa trên toàn bộ bản ghi.
    • Khám phá các kỹ thuật như giảm kích thước đầu vào và tóm tắt lịch sử cuộc trò chuyện để cải thiện tốc độ suy luận.
  4. Xây dựng giao diện người dùng bằng HTML và JavaScript:

    • Tạo tệp index.html trong thư mục templates.
    • Định nghĩa cấu trúc HTML với trường nhập văn bản, nút ghi âm và hiển thị gợi ý.
    • Triển khai logic JavaScript để xử lý việc ghi âm, tải lên âm thanh và gọi API đến backend Flask.
  5. Kiểm tra và triển khai ứng dụng web:

    • Chạy ứng dụng Flask cục bộ và kiểm tra chức năng.
    • Triển khai ứng dụng lên một nền tảng lưu trữ (ví dụ: Heroku, AWS hoặc máy chủ của riêng bạn).

Bằng cách làm theo các bước này, bạn sẽ có thể xây dựng một bản demo trợ lý cuộc trò chuyện dựa trên web có thể lắng nghe các cuộc trò chuyện, tạo ra bản ghi thời gian thực và cung cấp các gợi ý dựa trên ngữ cảnh.

Sau khi xem bản demo ấn tượng của trợ lý cuộc trò chuyện dựa trên web, tôi quyết định khám phá tiềm năng của việc xây dựng một phiên bản di động bằng cách sử dụng framework nguồn mở Whisper Kit. Whisper Kit cung cấp một gói Swift cho phép triển khai trực tiếp mô hình Whisper chuyển đổi giọng nói thành văn bản trên các thiết bị iOS, cho phép ghi âm thời gian thực với độ trễ tối thiểu.

Để bắt đầu, tôi đã nhân bản kho lưu trữ GitHub của Whisper Kit và mở dự án ví dụ trong Xcode. Dự án bao gồm một thư mục whisper-ax, chứa mã nguồn cho một ứng dụng iOS mẫu để minh họa việc sử dụng Whisper Kit.

Trong tệp ContentView.swift, trước tiên tôi đã định nghĩa một số biến trạng thái bổ sung để xử lý đầu vào lời nhắc và tóm tắt phản hồi API từ mô hình ngôn ngữ lớn. Sau đó, tôi đã thêm một trường nhập để người dù

Câu hỏi thường gặp