Nhận dạng giọng nói thành văn bản bằng Python: Công cụ, Mã và So sánh
By manhnv, at: 11:17 Ngày 26 tháng 11 năm 2024
Thời gian đọc ước tính: __READING_TIME__ minutes


Chuyển đổi giọng nói thành văn bản là một tính năng quan trọng trong nhiều ứng dụng, từ trợ lý cá nhân đến các công cụ phiên âm. Trong bài viết này, chúng ta sẽ khám phá các thư viện và dịch vụ hàng đầu để triển khai chức năng chuyển đổi giọng nói thành văn bản trong Python: SpeechRecognition, Google Cloud Speech-to-Text, Azure Speech Service, và Whisper của OpenAI. Chúng ta sẽ cung cấp mã ví dụ cho từng thư viện và so sánh hiệu suất, độ chính xác và giá cả của chúng.
1. SpeechRecognition
Tổng quan
- Loại: Mở nguồn
- Phụ thuộc: Micro cục bộ hoặc các tệp âm thanh đã được ghi âm trước
- Backend: Google Web Speech API theo mặc định
- Lý tưởng cho: Xây dựng mẫu nhanh, các dự án sở thích
Đoạn mã
import speech_recognition as sr
recognizer = sr.Recognizer()
with sr.Microphone() as source:
print("Đang lắng nghe...")
audio = recognizer.listen(source)
try:
text = recognizer.recognize_google(audio)
print("Bạn đã nói:", text)
except sr.UnknownValueError:
print("Không thể hiểu âm thanh.")
except sr.RequestError as e:
print(f"Lỗi API: {e}")
2. Google Cloud Speech-to-Text
Tổng quan
- Loại: API dựa trên đám mây
- Phụ thuộc: Tài khoản Google Cloud
- Lý tưởng cho: Độ chính xác cao, hỗ trợ nhiều ngôn ngữ
Đoạn mã
from google.cloud import speech
import io
client = speech.SpeechClient()
with io.open("audio.wav", "rb") as audio_file:
content = audio_file.read()
audio = speech.RecognitionAudio(content=content)
config = speech.RecognitionConfig(
encoding=speech.RecognitionConfig.AudioEncoding.LINEAR16,
sample_rate_hertz=16000,
language_code="en-US",
)
response = client.recognize(config=config, audio=audio)
for result in response.results:
print("Bản ghi:", result.alternatives[0].transcript)
3. Azure Speech Service
Tổng quan
- Loại: API dựa trên đám mây
- Phụ thuộc: Tài khoản Azure Cognitive Services
- Lý tưởng cho: Ứng dụng doanh nghiệp, tích hợp với hệ sinh thái Microsoft
Đoạn mã
import azure.cognitiveservices.speech as speechsdk
speech_key = "YOUR_AZURE_SPEECH_KEY"
service_region = "YOUR_SERVICE_REGION"
speech_config = speechsdk.SpeechConfig(subscription=speech_key, region=service_region)
speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config)
print("Hãy nói điều gì đó...")
result = speech_recognizer.recognize_once()
if result.reason == speechsdk.ResultReason.RecognizedSpeech:
print("Đã nhận diện:", result.text)
else:
print("Lỗi:", result.reason)
4. Whisper của OpenAI
Tổng quan
- Loại: Mở nguồn, ngoại tuyến
- Phụ thuộc: Mô hình Whisper được đào tạo trước
- Lý tưởng cho: Phiên âm ngoại tuyến, độ chính xác cao cho các giọng nói đa dạng
Đoạn mã
import whisper
model = whisper.load_model("base")
result = model.transcribe("audio.mp3")
print("Bản phiên âm:", result["text"])
Bảng so sánh
Thông tin hiệu suất
-
Độ chính xác:
- Whisper và Google Cloud Speech cung cấp độ chính xác vượt trội cho các giọng nói đa dạng và môi trường ồn ào.
- SpeechRecognition có thể gặp khó khăn với âm thanh không rõ ràng.
- Whisper và Google Cloud Speech cung cấp độ chính xác vượt trội cho các giọng nói đa dạng và môi trường ồn ào.
-
Tốc độ:
- SpeechRecognition và các dịch vụ đám mây như Google và Azure nhanh hơn Whisper, đặc biệt là đối với các tác vụ thời gian thực.
- Whisper chậm hơn nhưng hoạt động ngoại tuyến, làm cho nó có giá trị đối với các ứng dụng tập trung vào quyền riêng tư.
- SpeechRecognition và các dịch vụ đám mây như Google và Azure nhanh hơn Whisper, đặc biệt là đối với các tác vụ thời gian thực.
-
Chi phí:
- SpeechRecognition và Whisper có hiệu quả về chi phí đối với các dự án nhỏ hơn.
- Các dịch vụ đám mây (Google và Azure) tốt hơn cho các nhu cầu quy mô lớn, độ chính xác cao nhưng đi kèm với chi phí liên tục.
- SpeechRecognition và Whisper có hiệu quả về chi phí đối với các dự án nhỏ hơn.
Đề xuất cuối cùng
- Sử dụng SpeechRecognition cho các dự án nhanh và quy mô nhỏ.
- Chọn Google Cloud Speech hoặc Azure Speech Service cho các ứng dụng doanh nghiệp yêu cầu độ chính xác và hỗ trợ ngôn ngữ cao.
- Chọn Whisper nếu khả năng ngoại tuyến hoặc quyền riêng tư là ưu tiên.