Chuyển giọng nói thành văn bản OpenAI Whisper

Chuyển giọng nói thành văn bản miễn phí bằng OpenAI whisper trong 3 bước

Kể từ khi đọc được thông tin về mô hình máy học Whisper giúp chuyển giọng nói thành văn bản bởi OpenAI vào tháng 9/2022 tôi nhận thấy đây sẽ là một công nghệ rất thiết thực trong cuộc sống. Sau một thời gian theo dõi và thử nghiệm, tôi cũng đã sử dụng thành công mô hình này với Python trên Google Colab. Nhằm giúp những người không quen thuộc với lập trình cũng có thể sử dụng whisper, tôi viết thư viện python ur_audio_sub và tối giản hết sức các câu lệnh cần thiết giúp chuyển giọng nói thành văn bản. Whisper giúp nhận diện giọng nói từ nhiều ngôn ngữ khác nhau trong đó ~15 ngôn ngữ có tỉ lệ sai số 10%. Trong tutorial này, tôi sẽ hướng dẫn các bạn tạo phụ đề cho youtube video và chuyển đổi file ghi âm thành văn bản chỉ với 3 bước cực kỳ đơn giản.

Đối với tôi, đây là một công cụ rất hữu ích, có thể kể ra 3 ứng dụng thường gặp nhất là (1.) chuyển nội dung cuộc họp từ video thành văn bản để ghi chú và tìm kiếm thông tin dễ dàng, (2.) là tạo phụ đề cho video Youtube / Tiktok (3) chuyển nội dung podcast thành văn bản.

Bài hướng dẫn dưới đây dựa trên thư viện python ur_audio_sub của tôi có trên Github, các bạn có thể tham khảo thêm thông tin tại đây. Mô hình whisper mặc định ở đây là “medium”, tutorial này khuyến khích bạn sử dụng Google Colab, giúp các bạn tận dụng sức mạnh của máy ảo Google trong việc train model nhanh chóng vượt trội so với máy tính cá nhân. Đặc biệt, bạn có thể truy cập Google Colab thông qua trình duyệt web trên mọi thiết bị kể cả với smartphone.

Nếu bạn thực hiện tutorial này với máy tính cá nhân thì nên sử dụng model nhẹ hơn như “base” hoặc “small” của whisper để cân bằng độ chính xác với thời gian thực thi.

I. Chuyển giọng nói thành văn bản trên Google Colab

Bạn có thể xem trực tiếp video demo ngắn này để dễ hình dung trước khi đọc tóm tắt các công đoạn thực hiện như bên dưới.

Bước 1: Thiết lập môi trường Python

  • Truy cập Demo notebook được đính kèm trong thư viện ur_audio_sub > Hình minh hoạ H.1
  • Mở notebook trên Google Colab. Đảm bảo Google Colab được chạy với GPU runtime. > Hình minh hoạ H.2
  • Chạy nhóm dòng lệnh giúp cài đặt các thư viện cần thiết > Hình minh hoạ H.3
open notebook in google colab
H1. Mở demo notebook bằng Google Colab, tạo bản sao vào Drive của bạn
Google%20Colab%20runtime%20GPU
H2. Đảm bảo Google Colab runtime đang sử dụng GPU giúp tăng tốc quá trình train machine learning model.
Chuyển giọng nói thành văn bản trên Google Colab với OpenAI whisper
H3. Chạy nhóm câu lệnh thực hiện cài đặt môi trường python chỉ với 1 click

Bước 2: Chuẩn bị nguồn âm thanh cần chuyển đổi

Video từ Youtube

Tìm video bạn cần tạo phụ đề từ Youtube, copy link vào bộ nhớ tạm.

File âm thanh

Tải file âm thanh từ máy tính/điện thoại lên bộ nhớ tạm Google Colab hoặc bạn có thể kết nối Google Colab với Google Drive và tìm đường dẫn file âm thanh lưu trữ trong Drive của mình. Nhấp chuột phải vào file, chọn Copy path để chép được dẫn file vào bộ nhớ tạm.

Mình có 2 lời khuyên sau:

  • Bạn nên tải file âm thanh hoặc video lên Google Drive sau đó dẫn link thay vì upload trực tiếp từ Google Colab vì cách này có tốc độ rất chậm.
  • Chuyển đổi video thành file âm thanh trước khi tạo phụ đề có thể giúp quá trình xử lý nhanh hơn, upload file cũng nhanh chóng. Bạn có thể sử dụng ứng dụng CapCut có trên máy tính hoàn toàn miễn phí để làm việc này rất đơn giản. Trong nhiều trường hợp mình tạo phụ đề cho cả buổi học dài 2.5 tiếng thì việc này thể hiện khác biệt rõ ràng vì khi đó video ghi hình có dung lượng lên tới  2GB, rõ ràng là tốn bộ nhớ Google Drive và xử lý cũng rất chậm.
upload file am thanh
H4. Kết nối/tải file lên Google Colab

Bước 3: Chuyển giọng nói thành văn bản

Youtube video

Paste đường link của video vào hàm ytSub('https://www.youtube.com/shorts/o3qURBllpGM'), chạy dòng lệnh này và chờ trong giây lát. Sau khi chạy xong, file phụ đề của bạn sẽ hiển thị ở mục File Browser, bạn có thể tải xuống sử dụng.

File âm thanh

Paste đường dẫn file âm thanh vào hàm subGen_path('/content/mary.mp3') và chạy dòng lệnh này. Trong ví dụ này /content/mary.mp3 là đường dẫn file âm thanh tôi muốn chuyển đổi thành văn bản. Chờ câu lệnh thực hiện xong, bạn sẽ tìm thấy phụ đề của mình ở mục File Browser.

Bạn hãy dành chút thời gian xem video hướng dẫn ở trên để hình dung các bước thực hiện một cách trực quan nhất nhé.

II. Cập nhật mới nhất

Tháng 9/2023

Gói phần mềm ur_audio_sub hiện tại không thể tạo phụ đề trực tiếp từ Youtube mà chỉ có thể tạo phụ đề từ file âm thanh được tải lên. Lý do vì gói phần mềm phụ thuộc pytube có sử dụng cho phần mềm này gặp lỗi nghiêm trọng vẫn chưa được xử lý xong. Hy vọng trong thời gian sớm nhất chúng ta sẽ có giải pháp thay thế. Mong bạn thông cảm.

III. Giới thiệu OpenAI & Whisper

OpenAi là công ty nghiên cứu về lĩnh vực trí tuệ nhân tạo được tỉ phú Elon Musk thành lập năm 2015. Sứ mệnh của họ là đảm bảo trí tuệ nhân tạo mang lại lợi ích cho toàn nhân loại.

Whisper là mô hình nhận diện giọng nói đa năng được đào tạo trên tập dữ liệu lớn và đa dạng giúp thực hiện các tác vụ nhận diện giọng nói và dịch ngôn ngữ.

Whisper có tối đa 5 mô hình máy học với dung lượng khác nhau từ bé (tiny) đến lớn (large), cho phép người dung lựa chọn mô hình tối ưu nhằm cân đối tốc độ xử lý với độ chính xác.
Tỉ lệ nhận diện sai của whisper phụ thuộc vào loại ngôn ngữ, bảng dưới đây thể hiện thống kê tỉ lệ sai của từng loại ngôn ngữ khi sử dụng mô hình lớn nhất (large) của whisper. Với tiếng Việt, tỉ lệ này là 10.7% còn đối với tiếng Anh là 4.5%. Tỉ lệ lỗi thấp nhất với tiếng Tây Ban Nha, chỉ với 3.5%.

do chinh xac cua openai whisper cac ngon ngu
H5. Tỉ lệ nhận diện sai với model ‘large’ theo từng ngôn ngữ khác nhau của OpenAI whisper

Như vậy là  tôi đã hướng dẫn xong các bạn thực hiện chuyển giọng nói thành văn bản sử dụng mô hình máy học whisper. Nếu bạn có bất kỳ câu. hỏi nào, hãy để lại comment phía dưới bài viết. Nếu bài viết hữu ích, bạn hãy chia sẻ cảm nghĩ của bạn và giới thiệu tới network của mình.

5/5 - (2 votes)

6 comments

    1. Bạn refresh giúp mình cây thư mục của Google Colab nhé, bạn cũng có thể xem lại video demo trên Youtube mà mình có gắn trong bài viết. YOUR_SUBTITLE_PATH là nơi bạn cần thay đổi với giá trị thực tế của đường dẫn lưu file của bạn.

  1. Cảm ơn bạn rất nhiều, mình đã làm thành công rồi! Mong là bạn cải thiện tính năng tạo phụ đề từ link youtube nữa thì tuyệt vời quá!

  2. Chào Thịnh, cám ơn bạn về bài viết. Mình có thử với 1 file nhạc audio thì thấy rằng kết quả luôn chứa thêm những câu không liên quan tới bài nhạc như: “Hãy đăng kí cho kênh lalaschool Để không bỏ lỡ những video mới”. Có cách nào để loại bỏ những dòng này không nhỉ?

    1. Chào bạn, phần không liên quan này là lỗi đến từ mô hình nên hiện tại không có cách sửa ngoài việc bạn tự loại bỏ nó đi khi đã chuyển thành phụ đề nhé. Chúc bạn thành công!

Leave a Reply

Your email address will not be published. Required fields are marked *