Bộ nhận diện ngôn ngữ luôn đưa ra một kết quả, ngay cả với một tiếng ho. Hãy bật nhận diện cho âm thanh rõ ràng hoặc pha nhiều ngôn ngữ, và chỉ định ngôn ngữ khi chỉ có một ngôn ngữ được nói trong tiếng ồn hoặc với giọng nặng.
Mỗi lần phiên âm đều bắt đầu bằng một câu hỏi mà người đọc không bao giờ thấy: đây là ngôn ngữ nào? Nếu trả lời sai, phần còn lại của quy trình sẽ phải làm việc hết sức để tạo ra những câu lưu loát nhưng vô nghĩa. Bài viết này giải thích bộ nhận diện ngôn ngữ lắng nghe điều gì, cách nhận diện hoạt động với âm thanh trực tiếp và với tệp, và khi nào bạn nên tự chỉ định ngôn ngữ thì tốt hơn.
Bộ nhận diện ngôn ngữ không hiểu điều được nói. Nó xem xét chính âm thanh: kho phụ âm và nguyên âm, cách các âm tiết được nhấn, nhịp điệu của các cụm từ, và những từ ngắn, xuất hiện thường xuyên mà ngôn ngữ nào cũng dựa vào. Tiếng Tây Ban Nha có bộ nguyên âm và nhịp điệu riêng; tiếng Hà Lan và tiếng Đức có nhiều điểm chung nhưng khác nhau ở một số âm. Vài giây lời nói rõ ràng thường là đủ để phân biệt chúng.
Nhiều bộ nhận dạng làm việc này như một phần phụ của việc nhận dạng từ. Chúng quyết định ngôn ngữ dựa trên phần đầu của âm thanh, dưới dạng xác suất cho mọi ngôn ngữ mà chúng biết. Thiết kế này kéo theo hai hệ quả. Các xác suất luôn cộng lại bằng một, nên không có đáp án "không có ngôn ngữ": im lặng, một tiếng ho hay một đoạn nhạc đều được gán một ngôn ngữ, thường kèm điểm số rất tự tin. Và quyết định được đưa ra từ phần mở đầu, tức là mẫu tồi nhất có thể chọn. Nhiều bản ghi âm mở đầu bằng lời chào, tên người và địa danh, vốn mang rất ít tín hiệu ngôn ngữ: "Good morning, Maria, welcome to Berlin" gần như tiếng Đức cũng như tiếng Anh. Những bản khác mở đầu bằng im lặng hay một tiếng ho, và bộ nhận diện được yêu cầu quyết định trên đó vẫn sẽ quyết định, với sự tự tin, dựa trên hầu như không có gì. Âm thanh thực tế cũng xảy ra như vậy: một bài giảng tiếng Romania mở đầu bằng tiếng ồn phòng và "Bună dimineața" có thể bị nghe nhầm thành tiếng Ý "Buona domenica", với sự chắc chắn tuyệt đối.
Cái giá của một câu trả lời sai cũng tệ hơn vẻ ngoài. Bộ nhận dạng giải mã sai ngôn ngữ không viết sai chính tả mà viết lại hoàn toàn. "For God so loved the world", khi được giải mã như tiếng Romania, thành ra "Forgot to love the world". Câu tiếng Romania "mândria slujește", khi được giải mã như tiếng Anh, thành "Pride serves", một bản dịch chính xác của một câu mà không ai yêu cầu dịch. Các từ đều trôi chảy và bản phiên âm không có dấu hiệu nào cho thấy có lỗi, và đó là điều khiến lỗi này tốn kém.
Năm điều thường đánh lừa bộ nhận diện nhất:
Điều nào trong số này ảnh hưởng đến bạn phụ thuộc vào việc âm thanh đang được truyền trực tiếp hay đã nằm sẵn trong một tệp.
Với phiên âm trực tiếp, không có toàn bộ bản ghi để xem xét. Âm thanh đến khi được nói, và bản phiên âm phải đến cùng lúc. Vì vậy ngôn ngữ được nhận diện ngay khi người nói đang nói, và được theo dõi nếu họ chuyển sang ngôn ngữ khác. Đây là ý nghĩa của ghi chú dưới công tắc Spoken language khi bạn bắt đầu một phiên âm trực tiếp trong Bảng điều khiển: ngôn ngữ của người nói được nhận diện tự động, và họ có thể chuyển đổi bất cứ lúc nào.
Một lần chuyển đổi được xác nhận trước khi áp dụng, nên một đoạn ồn nhất thời không kéo bản phiên âm sang ngôn ngữ khác. Điểm yếu nằm ở phần mở đầu: nếu những từ đầu tiên là một lời chào ồn ào, dòng đầu tiên có thể ra đúng ngôn ngữ sai. Chỉ định ngôn ngữ sẽ tránh được điều đó.
Tệp thì hoạt động khác, vì toàn bộ bản ghi đã có sẵn.
Với tệp, bài toán dễ hơn: không cần tin vào vài giây đầu. Đối với một tệp, ngôn ngữ được quyết định từ toàn bộ bản ghi, nên một lời chào ồn ào ở đầu không thể tự quyết định kết quả.
Ngôn ngữ của tệp vẫn chỉ là một giả định làm việc, không phải phán quyết cuối cùng. Một bản ghi thực sự đổi ngôn ngữ giữa chừng, chẳng hạn một cuộc phỏng vấn chuyển từ tiếng Anh sang tiếng Romania ở nửa sau, sẽ được theo dõi chứ không bị ép theo một ngôn ngữ, và bản ghi xen kẽ giữa các ngôn ngữ xuyên suốt cũng được xử lý.
Một bộ nhận diện chỉ quyết định một lần và không bao giờ xem lại thì tự tin ở chỗ sai.
Bộ nhận diện hầu như không giúp được nhiều khi toàn bộ bản ghi đều ồn. Nhận diện là mặc định vì nó đúng phần lớn thời gian và không tốn gì. Tuy nhiên, với một số bản ghi, bạn nên chỉ định ngôn ngữ, và Bảng điều khiển cho biết những bản ghi nào: chỉ định ngôn ngữ nói sẽ cải thiện độ chính xác với bản ghi nhiều tiếng ồn và giọng nặng.
Đó là những trường hợp bộ nhận diện có ít dữ liệu để làm việc nhất. Tiếng ồn loại bỏ các dấu hiệu mà bộ nhận diện dựa vào; giọng nặng làm lệch chúng về phía một ngôn ngữ khác; một cặp ngôn ngữ gần nhau vốn đã có ít dấu hiệu. Một người nói tiếng Anh với giọng Bồ Đào Nha đậm trong một hội trường vang âm rất khó xác định chỉ từ âm thanh, và nếu bộ nhận diện đoán sai, bản phiên âm sẽ biến lời nói tiếng Anh thành tiếng Bồ Đào Nha suốt thời gian lỗi đó kéo dài. Chỉ định ngôn ngữ sẽ loại bỏ câu hỏi đó, nên mọi nỗ lực đều dồn vào các từ.
Dưới đây là danh sách kiểm tra ngắn:
Chỉ định ngôn ngữ là một thiết lập của phiên âm, không phải của tài khoản, nên bạn có thể quyết định cho từng bản ghi. Tất cả những điều trên đều quy về một tùy chọn API.
spokenLanguage nghĩa là nhận diện; session.update giữa chừng luồngTrong API, spokenLanguage là mã ngôn ngữ như en; nếu bỏ qua, ngôn ngữ sẽ được nhận diện. Tùy chọn này xuất hiện trong settings của phiên âm tệp hoặc liên kết, và trong các tùy chọn của phiên thời gian thực. Nhận diện và chỉ định cùng bao phủ 100 ngôn ngữ. Dịch sang tối đa 10 ngôn ngữ trong số đó là một lựa chọn riêng, và không phụ thuộc vào ngôn ngữ nào đã được nhận diện hoặc chỉ định. Cách bản dịch theo kịp lời nói là chủ đề của Độ trễ dịch trực tiếp được giải thích.
{ "name": "Board meeting", "settings": { "spokenLanguage": "en", "speakerLabels": "auto" } }
Một phiên thời gian thực nhận cùng tùy chọn này khi được tạo, và bạn có thể thay đổi khi âm thanh đang truyền. Một khung văn bản session.update với spokenLanguage mới sẽ áp dụng cho giọng nói từ thời điểm đó trở đi; đặt giá trị thành "" hoặc "auto" sẽ đưa phiên về chế độ nhận diện, và mã không được hỗ trợ sẽ bị bỏ qua. Một khung nhìn phụ đề có nút ngôn ngữ có thể cho phép người vận hành chỉ định ngôn ngữ ngay khi thấy dòng đầu tiên sai, mà không cần kết nối lại.
{ "type": "session.update", "spokenLanguage": "ro" }
Danh sách mã, cùng tên của chúng, nằm tại GET /v1/languages, không cần khóa. Toàn bộ luồng thời gian thực, từ việc tạo phiên trên máy chủ của bạn đến đọc bản nháp và bản chốt, được trình bày trong Phiên âm thời gian thực qua WebSocket, và tài liệu tương tác nằm tại {{api}}/docs. Trong Bảng điều khiển, cùng lựa chọn đó là công tắc Spoken language khi bạn bắt đầu một phiên âm mới, còn khóa API nằm trong mục Developers.