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 bằng Python: Công cụ, mã và so sánh
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 chuyển đổi giọng nói thành văn bản trong Python: SpeechRecognition, Google Cloud Speech-to-Text, Dịch vụ Azure Speech, và Whisper của OpenAI. Chúng ta sẽ cung cấp mã mẫu cho từng loại 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 sẵn
- Backend: Google Web Speech API theo mặc định
- Lí tưởng cho: Xây dựng mẫu nhanh, dự án sở thích
Đoạn mã
import speech_recognition as sr
recognizer = sr.Recognizer()
with sr.Microphone() as source:
print("Đang 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 được â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. Dịch vụ Azure Speech
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("Nói 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 sẵn
- Lí tưởng cho: Phiên âm ngoại tuyến, độ chính xác cao cho nhiều giọng khác nhau
Đ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 cao hơn cho nhiều giọ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 cao hơn cho nhiều giọ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í đang diễn ra.
- 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 Dịch vụ Azure Speech 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.