Dùng gan trăn

Bạn đã bao giờ tự hỏi làm thế nào để thêm nhận dạng giọng nói vào dự án Python của mình chưa? . Nó dễ dàng hơn bạn nghĩ

Không còn chỉ là mốt nhất thời, sự thành công vượt bậc của các sản phẩm hỗ trợ giọng nói như Amazon Alexa sẽ chứng minh rằng công nghệ hỗ trợ giọng nói ở một mức độ nào đó sẽ là một phần thiết yếu của công nghệ gia đình trong tương lai gần. Nếu bạn nghĩ về nó, nó khá rõ ràng. Việc kết hợp nhận dạng giọng nói vào ứng dụng Python của bạn mang lại mức độ tương tác và khả năng truy cập mà ít công nghệ có thể sánh kịp

Chỉ những cải tiến về khả năng tiếp cận cũng đáng được xem xét. Tính năng gần gũi dựa trên giọng nói cho phép người già và người khiếm thị tương tác với các sản phẩm và dịch vụ hiện đại một cách nhanh chóng và tự nhiên — không cần GUI

Trên hết, bao gồm nhận dạng giọng nói trong một dự án không có Python thực sự đơn giản. Trong hướng dẫn này, bạn sẽ tìm hiểu làm thế nào để làm điều đó. Bạn sẽ học

  • Chức năng nhận dạng giọng nói hoạt động như thế nào,
  • Những gói nào có sẵn trên PyPI;
  • Cách cài đặt và sử dụng gói SpeechRecognition - thư viện nhận dạng giọng nói Python đầy đủ tính năng và dễ sử dụng

Cuối cùng, bạn sẽ áp dụng những gì đã học được vào trò chơi "From John" đơn giản và xem mọi thứ khớp với nhau như thế nào.

Cách thức hoạt động của tính năng nhận dạng giọng nói - Tổng quát

Trước khi chúng ta triển khai thực tế nhận dạng giọng nói trong Python, hãy dành một chút thời gian để nói về cách hoạt động của nhận dạng giọng nói. Một cuộc thảo luận đầy đủ sẽ lấp đầy một cuốn sách, vì vậy tôi sẽ không cung cấp cho bạn tất cả các chi tiết kỹ thuật ở đây. Trên thực tế, phần này không bắt buộc đối với phần còn lại của hướng dẫn. Nếu bạn muốn đi thẳng vào vấn đề, xin hãy để nó ở đây

Nhận dạng giọng nói bắt nguồn từ nghiên cứu được thực hiện tại Bell Labs vào đầu những năm 1950. Các hệ thống ban đầu được giới hạn ở một người nói và số từ được giới hạn trong khoảng một chục từ. Các hệ thống nhận dạng giọng nói hiện đại đã đi một chặng đường dài kể từ các hệ thống cổ xưa của chúng ta. Họ có thể nhận dạng hình thức bài phát biểu của nhiều người nói và có vốn từ vựng lớn trong nhiều ngôn ngữ

Tất nhiên, đó là phần đầu tiên của sự công nhận dưới dạng lời nói. Lời nói phải được chuyển đổi từ âm thanh vật lý sang tín hiệu điện bằng micrô, sau đó sang dữ liệu kỹ thuật số bằng bộ chuyển đổi tương tự như âm thanh kỹ thuật số. Sau khi được số hóa, một số mô hình có thể được sử dụng để chuyển đổi âm thanh thành văn bản

Hầu hết các hệ thống nhận dạng giọng nói hiện đại đều dựa trên cái được gọi là Mô hình Markov ẩn (HMM). Cách tiếp cận này hoạt động dựa trên giả định rằng một tín hiệu tiếng nói, khi được xem trong một khoảng thời gian đủ ngắn (ví dụ: mười mili giây), có thể được ước lượng một cách hợp lý như một quá trình cố định— nghĩa là một quá trình trong đó các thuộc tính thống kê không thay đổi theo thời gian

Trong một HMM điển hình, tín hiệu tiếng nói được chia thành các đoạn 10 mili giây. Hệ số công suất của mỗi đoạn, về cơ bản là đồ thị của công suất tín hiệu dưới dạng hàm tần số, được ánh xạ tới một vectơ số thực gọi là số cepstral. Lực lượng của vectơ này thường nhỏ—đôi khi thấp tới 10, mặc dù các hệ thống chính xác hơn có thể có lực lượng từ 32 trở lên. Phần đầu và phần cuối của HMM là một chuỗi các vectơ này

Để giải mã lời nói thành văn bản, các nhóm vectơ được khớp với một hoặc nhiều âm thanh—một đơn vị cơ bản của lời nói. Tính toán này đòi hỏi phải được đào tạo, bởi vì âm thanh của một âm thanh thay đổi từ người nói này sang người nói khác, và thậm chí thay đổi từ cách phát âm này sang cách phát âm khác của cùng một người nói. Sau đó, một thuật toán đặc biệt được áp dụng để xác định từ (hoặc các từ) có nhiều khả năng tạo ra một chuỗi âm thanh nhất định

Người ta có thể tưởng tượng rằng toàn bộ quá trình này có thể tốn kém về mặt tính toán. Trong nhiều hệ thống nhận dạng giọng nói hiện đại, mạng thần kinh được sử dụng để đơn giản hóa tín hiệu giọng nói bằng cách sử dụng các kỹ thuật biến đổi đặc biệt và giảm kích thước của HMM. Phát hiện hoạt động giọng nói (VAD) cũng được sử dụng để giảm tín hiệu âm thanh xuống chỉ những phần có khả năng chứa giọng nói. Điều này ngăn bộ nhận dạng lãng phí thời gian phân tích các phần không cần thiết của tín hiệu

May mắn thay, là một lập trình viên Python, bạn không phải lo lắng về bất kỳ điều gì trong số này. Một số dịch vụ nhận dạng giọng nói có sẵn để sử dụng trực tuyến qua API và nhiều dịch vụ trong số này cung cấp Python SDK

Chọn gói nhận dạng giọng nói Python

Có một vài gói nhận dạng định dạng giọng nói trên PyPI. Một số trong số họ được bao gồm

  • apiai
  • lắp ráp
  • google-cloud-speech
  • max max
  • Nhận dạng giọng nói
  • watson-nhà phát triển-đám mây
  • Tôi xin lỗi

Một số gói này—chẳng hạn như wit và apiai—cung cấp các tính năng tích hợp, chẳng hạn như xử lý ngôn ngữ tự nhiên để xác định ý định của người nói, ngoài khả năng nhận dạng giọng nói cơ bản. Những người khác, chẳng hạn như google-cloud-speech, chỉ tập trung vào việc chuyển đổi lời nói thành văn bản

Có một gói nổi bật về tính dễ sử dụng. Nhận dạng giọng nói

Nhận dạng yêu cầu nhập bằng giọng nói và Nhận dạng giọng nói giúp truy xuất dữ liệu đầu vào này thực sự dễ dàng. Thay vì phải tạo tập lệnh để truy cập micrô và xử lý tệp âm thanh từ đầu, Nhận dạng giọng nói sẽ giúp bạn thiết lập và chạy trong vài phút

Thư viện SpeechRecognition hoạt động như một trình bao bọc cho một số API giọng nói phổ biến và cực kỳ linh hoạt. Một trong số đó — API Web Speech của Google — hỗ trợ khóa API mặc định được mã hóa cứng vào thư viện SpeechRecognition. Điều đó có nghĩa là bạn có thể xuống chân mà không cần phải đăng ký dịch vụ

Tính linh hoạt và dễ sử dụng của gói SpeechRecognition khiến nó trở thành lựa chọn tuyệt vời cho mọi dự án không phải Python. Tuy nhiên, chúng tôi không đảm bảo hỗ trợ cho mọi tính năng của từng API, nhưng nó sẽ sớm kết thúc. Bạn sẽ cần dành thời gian nghiên cứu các tùy chọn có sẵn để tìm hiểu xem Nhận dạng giọng nói có hoạt động trong trường hợp cụ thể của bạn hay không.

Vì vậy, bây giờ bạn đã bị thuyết phục rằng mình nên dùng thử Nhận dạng giọng nói, bước tiếp theo là cài đặt nó trong môi trường của bạn.

Cài đặt SpeechRecognition

SpeechRecognition tương thích với Python 2. 6, 2. 7 và 3. 3+, nhưng yêu cầu Python 2. Đối với hướng dẫn này, tôi sẽ cho rằng bạn đang sử dụng Python 3. 3+

Bạn có thể cài đặt SpeechRecognition từ thiết bị đầu cuối bằng cách sử dụng pip

$ pip install SpeechRecognition

Khi thiết lập, bạn nên xác minh cài đặt bằng cách mở phiên dịch và nhập

>>> >>> import speech_recognition as sr >>> sr.__version__ '3.8.1'

Lưu nó. Số phiên bản bạn nhận được có thể khác. Phiên bản 3. 8. 1 là phiên bản mới nhất tại thời điểm viết bài

Tiếp tục và giữ phiên này mở. Bạn sẽ bắt đầu làm việc với chúng tôi chỉ trong giây lát

SpeechRecognition sẽ hoạt động hiệu quả nếu tất cả những gì bạn cần làm là làm việc với các tệp âm thanh hiện có. Tuy nhiên, các trường hợp sử dụng cụ thể có thể yêu cầu một số phụ kiện. Sau đó, bạn cần cài đặt PyAudio để cắm đầu vào micrô

Bạn sẽ thấy phụ kiện nào bạn cần khi đọc thêm. Bây giờ, hãy đi sâu vào và khám phá những điều cơ bản của gói

các Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 1Lớp

Tất cả những điều xảy ra trong SpeechRecognition đều xảy ra với Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 1 lớpọc

Tất nhiên, mục đích chính của phiên bản _________ 21 là nhận dạng giọng nói. Mỗi phiên bản đi kèm với nhiều cài đặt và chức năng khác nhau để nhận dạng các mẫu giọng nói từ các nguồn âm thanh

Tạo bản sao Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 1phiên rất dễ dàng. Trong phiên dịch hiện tại của bạn, chỉ cần nhập

>>> >>> r = sr.Recognizer()

Mỗi phiên bản ________ 21 có bảy phương pháp để nhận dạng các mẫu giọng nói từ các nguồn âm thanh bằng các API khác nhau. Đó là nó

  • Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 6. Bài phát biểu của Microsoft Bing
  • Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 7. API giọng nói trên web của Google
  • Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 8. Google Cloud Speech - Yêu cưới cài tụ hội google-cloud-speech
  • Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 9. Houndify của SoundHound
  • >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 20. Bài phát biểu thành văn bản của IBM
  • >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 21. CMU Sphinx - cài đặt PocketSphinx
  • >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 22. Mưu mẹo. ồ

Trong số bảy, chỉ có >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 21 sẽ hoạt động ngoại tuyến với công cụ CMU Sphinx. Mọi thứ khác yêu cầu kết nối internet

Phần thảo luận đầy đủ về các tính năng và lợi ích của từng API nằm ngoài phạm vi của hướng dẫn này. Vì SpeechRecognition đi kèm với khóa API mặc định cho Google Web Speech API nên bạn có thể bắt đầu với nó ngay lập tức. Vì lý do này, chúng tôi sẽ sử dụng API Web Speech trong hướng dẫn này. Tất cả các API khác đều yêu cầu xác thực bằng khóa API hoặc kết hợp tên người dùng/mật khẩu. Để biết thêm thông tin, hãy xem Nhận dạng giọng nói

Hãy cẩn thận. Khóa mặc định do SpeechRecognition cung cấp chỉ dành cho mục đích thử nghiệm và Google có thể thu hồi khóa này bất kỳ lúc nào. Không cần sử dụng Google Web Speech API trong quá trình sản xuất. Ngay cả với khóa API hợp lệ, bạn sẽ chỉ bị giới hạn ở 50 yêu cầu mỗi ngày và không có cách nào để tăng giới hạn này. May mắn thay, giao diện của SpeechRecognition hầu như giống hệt với từng API, vì vậy những gì bạn tìm hiểu hôm nay sẽ dễ dàng chuyển thành một dự án trong thế giới thực.

Mỗi phương thức >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 24 sẽ đưa ra một ngoại lệ >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 25 nếu không thể truy cập API. Đối với >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 21, điều này có thể xảy ra khi cài đặt Sphinx của bạn bị thiếu, hỏng hoặc không tương thích. Đối với sáu phương pháp khác, có thể sử dụng >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 27 nếu đáp ứng giới hạn, máy chủ không khả dụng hoặc không có kết nối internet

Được rồi, nói chuyện đủ rồi. Làm bẩn tay bạn. Tiếp tục và cố gắng gọi ________ 27 trong phiên giao tiếp của bạn

>>> Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 1

Chuyện gì đã xảy ra thế?

Bạn có thể nhận được một cái gì đó như thế này

Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data'

Bạn có thể đoán điều này sẽ xảy ra. Làm thế nào bạn có thể nhận được một cái gì đó từ một cái gì đó?

Tất cả bảy _______ 124 phương thức của _______ 21 lớp yêu cầu một số _______251. Ở mỗi trường, Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 51ph là một phiên bản của Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 53 lớp SpeechRecognition

Có hai cách để tạo phiên bản Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 53. Từ một tệp hoặc âm thanh được ghi lại bằng micrô. Các tệp âm thanh dễ bắt đầu hơn một chút, vì vậy hãy xem trước

Làm việc với các tệp âm thanh

Trước khi tiếp tục, bạn cần tải xuống tệp âm thanh. Bạn có thể tìm thấy những gì tôi đã sử dụng để bắt đầu, “harvard. wav” ở đây. Đảm bảo rằng bạn lưu nó vào cùng thư mục nơi phiên dịch Python của bạn đang chạy

SpeechRecognition giúp làm việc với các tệp âm thanh dễ dàng nhờ thiết bị của Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 55 lớp. Lớp này có thể được khởi tạo bằng đường dẫn đến tệp âm thanh và cung cấp giao diện trình quản lý ngữ cảnh để đọc và làm việc với nội dung của tệp

Các loại tệp được hỗ trợ

Hiện tại, SpeechRecognition hỗ trợ các định dạng tệp sau

  • WAV. Phải ở định dạng PCM/LPCM
  • AIFF
  • AIFF-C
  • FLAC. Nó phải ở định dạng FLAC gốc;

Nếu bạn đang làm việc trên Linux, macOS hoặc Windows dựa trên x-86, bạn sẽ có thể làm việc với các tệp FLAC mà không gặp bất kỳ sự cố nào. Trên các nền tảng khác, bạn sẽ cần cài đặt bộ mã hóa FLAC và đảm bảo rằng bạn có quyền truy cập vào dòng lệnh Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 56. Bạn có thể tìm thêm thông tin ở đây nếu điều này áp dụng cho bạn

Sử dụng Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 57 để thu thập dữ liệu từ một tệp

Nhập các thông tin sau vào trình duyệt để xử lý nội dung file "harvard. ồ"

>>> >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 2

Trình quản lý ngôn ngữ mở tệp và đọc nội dung của nó, lưu trữ dữ liệu trong tệp thứ Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 55 có tên là Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 59 Sau đó, ngôn ngữ Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 57 ghi dữ liệu từ toàn bộ tệp vào tệp Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 53. Bạn có thể xác nhận điều này bằng cách kiểm tra loại Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 72

>>> Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 5

Bây giờ, bạn có thể gọi cho Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 7 để cố gắng nhận dạng hình thức của bất kỳ lời nói nào trong giọng nói. Tùy thuộc vào tốc độ kết nối internet của bạn, bạn có thể phải đợi vài giây trước khi xem kết quả

>>> Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 7

Xin chúc mừng. Bạn vừa sao chép tệp âm thanh đầu tiên của mình

Nếu bạn đang thắc mắc về những từ ngữ trong file “harvard. wav” đến từ đâu, ngwan là ví dụ đồng Câu Harvard. Các thuật ngữ này đã được IEEE xuất bản vào năm 1965 để sử dụng trong việc kiểm tra độ trong của giọng nói của đường dây điện thoại. Chúng vẫn được sử dụng trong VoIP và được thử nghiệm hoạt động cho đến ngày nay

Câu nói Harvard chứa 72 cuốn sách. Bạn có thể tìm thấy các bản ghi miễn phí các cụm từ này trên trang web của Kho lưu trữ Lời nói Mở. Bản ghi âm có sẵn bằng tiếng Anh, tiếng Quảng Đông, tiếng Pháp và tiếng Hindi. Họ cung cấp một nguồn tài nguyên miễn phí tuyệt vời để kiểm tra mã của bạn

Đi một đoạn với Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 74vàTraceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 75

Điều gì sẽ xảy ra nếu bạn chỉ muốn ghi lại một phần bài phát biểu trong một tệp?

Ví dụ. Phần này ghi lại bất kỳ bài phát biểu nào trong bốn giây đầu tiên của tệp

>>> Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 5

Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 57phạp, khi được sử dụng bên trong một Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 79khối, luôn di chuyển về phía trước trong luồng tệp. Điều này có nghĩa là nếu bạn viết nó một lần trong bốn giây và sau đó viết lại sau bốn giây, thì lần thứ hai nó sẽ trả về âm thanh của bốn giây hoặc bốn giây đầu tiên.

>>> Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 8

Hãy nhớ rằng ________ 450 chứa một phần văn bản trong tệp. Khi chỉ định thời lượng, bản ghi có thể dừng ở giữa một cụm từ - hoặc thậm chí giữa các từ - điều này có thể ảnh hưởng đến độ chính xác của bản chép lời. Thêm về điều này trong một chút

Ngoài việc chỉ định lượng thời gian, _______257 phương có thể được cung cấp một điểm bắt đầu cụ thể bằng cách sử dụng _______374đối số từ khóa. Giá trị này biểu thị số giây kể từ khi bắt đầu tệp phải còn lại trước khi bắt đầu ghi

Để chỉ viết từ thứ hai trong tệp, bạn có thể bắt đầu với khoảng thời gian bốn giây và viết lại, chẳng hạn như hai giây

>>> >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 0

Các đối số Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 74và Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 75từ dư thừa khải huyền ịch khất phấm phần đến thến thếu có công thức thức khách sạn bài báoi thức thông tin tập tin. Tuy nhiên, sử dụng chúng vội vàng có thể dẫn đến chất lượng âm thanh kém. Để xem hiệu ứng này, hãy thử các bước bên dưới trong trình duyệt của bạn

>>> >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 1

Khi bạn bắt đầu viết ở 4,7 giây, bạn bỏ lỡ phần "it t" ở đầu cụm từ "canần ạập điến ra mồi" nên API chỉ nhận được "akes heat" và khớp với "Mesquite. "

Tương tự, ở cuối đoạn ghi âm, bạn bắt gặp "a co", phần mở đầu của câu từ Đại ba "ngâm khách sạn trong nước lương đầu đến đầu đến". Điều này được so sánh với "Aiko" bởi API

Có một lý do khác khiến bạn có thể nhận được phiên bản âm thanh không chính xác. Tiếng ồn. Các ví dụ trên hoạt động tốt vì tệp âm thanh khá sạch. Trong thế giới thực, trừ khi bạn có cơ hội xử lý trước các tệp âm thanh, bạn không thể mong đợi âm thanh không có tạp âm.

Ảnh hưởng của tiếng ồn đến nhận dạng giọng nói

Tiếng ồn là một thực tế của cuộc sống. Tất cả các bản ghi đều chứa một số mức nhiễu và tiếng ồn không được xử lý có thể làm hỏng độ chính xác của các ứng dụng nhận dạng giọng nói

Để biết tiếng ồn có thể ảnh hưởng đến nhận dạng giọng nói như thế nào, hãy tải xuống tệp “jackhammer. wav” ở đây. Như thường lệ, hãy đảm bảo bạn lưu nó vào thư mục công việc của người dịch

Tập tin này có dòng chữ "mùi hôi đến bia cùn ghét đội" nói với một mũi khoan lớn ở phía nam

Điều gì xảy ra khi bạn cố gắng sao chép tệp này?

>>> >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 2

Tắt

Vì vậy, làm thế nào để bạn đối phó với điều này?

>>> >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 3

Điều đó giúp bạn tiến gần hơn một chút đến câu thực tế, nhưng vẫn chưa hoàn hảo. Ngoài ra, "the" bị thiếu ở đầu câu. Tại sao vậy?

Các Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 55 phương pháp đọc giây đầu tiên của dòng tệp và điều chỉnh khả năng nhận dạng theo mức độ ồn của âm thanh. Do đó, phần đó của luồng được sử dụng trước khi bạn gọi Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 57 để thu thập dữ liệu

Bạn có thể điều chỉnh khung thời gian sẽ được sử dụng để phân tích với. Tham số này nhận giá trị số tính bằng giây và được đặt thành 1 theo mặc định. Hãy thử giảm giá trị này xuống 0,5

>>> >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 4

Chà, bạn có "the" ở đầu câu, nhưng bây giờ bạn có một vấn đề mới. Đôi khi không thể loại bỏ ảnh hưởng của tiếng ồn — tín hiệu quá lớn để xử lý thành công. Đó là trường hợp của tập tin này

Nếu bạn thường xuyên gặp phải những sự cố này, bạn có thể phải sử dụng một số công cụ xử lý trước âm thanh. Điều này có thể được thực hiện bằng phần mềm chỉnh sửa âm thanh hoặc gói Python (chẳng hạn như SciPy) có thể áp dụng bộ lọc cho tệp. Phần thảo luận chi tiết về vấn đề này nằm ngoài phạm vi của hướng dẫn này - hãy xem cuốn sách Think DSP của Allen Downey nếu bạn quan tâm. Hiện tại, chỉ cần lưu ý rằng tiếng ồn xung quanh trong tệp âm thanh có thể gây ra sự cố và phải được giải quyết để tối đa hóa độ chính xác của nhận dạng giọng nói

Khi làm việc với các tệp âm thanh, có thể hữu ích khi xem phản hồi API thực tế. Hầu hết các API trả về một chuỗi JSON có thể chứa nhiều phiên. Các Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 7 phương pháp sẽ luôn trả về câu trả lời mà bạn có thể sao chép, trừ khi bạn buộc tôi phải cung cấp cho bạn câu trả lời đầy đủ

Bạn có thể thực hiện việc này bằng cách thiết lập đối số Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 82 từ khóa của Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 7 phương pháp phạp thầnTraceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 84

>>> >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 5

Như bạn có thể thấy, Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 7quay lại từ điển với khóa Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 86quay lại danh sách các bảng điểm có thể. Cấu trúc của phản hồi này có thể khác nhau giữa các API và chủ yếu hữu ích để gỡ lỗi

Đến bây giờ, bạn đã có một ý tưởng khá tốt về những điều cơ bản của SpeechRecognition. Bạn đã xem cách tạo bản sao Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 55phiên từ tệp âm thanh và sử dụng phương pháp Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 57phiên này để thu thập dữ liệu từ tệp. Bạn đã học cách viết các đoạn của tệp bằng cách sử dụng các số Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 74v Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 75 và khóa của Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 57 và bạn đã gặp phải ảnh hưởng bất lợi đến độ chính xác của bản sao của mình

Bây giờ thật thú vị. Chuyển các tệp âm thanh tĩnh từ phiên Làm cho dự án của bạn tương tác bằng cách chấp nhận đầu vào từ micrô

Làm việc với micrô

Để truy cập micrô của bạn bằng SpeechRecognizer, bạn sẽ cần cài đặt PyAudio. Hãy tiếp tục và đóng phiên giao tiếp hiện tại của bạn và làm điều đó

Cài đặt PyAudio

Quá trình cài đặt PyAudio sẽ khác nhau tùy thuộc vào hệ điều hành của bạn

DebianLinux

Nếu bạn đang sử dụng Linux dựa trên Debian (như Ubuntu), bạn có thể cài đặt PyAudio với >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 02

>>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 6

Sau khi cài đặt, bạn vẫn có thể cần chạy >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 03, đặc biệt nếu bạn đang làm việc trong môi trường ảo

hệ điều hành Mac

Đối với macOS, trước tiên bạn cần cài PortAudio với Homebrew, sau đó cài PyAudio với >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 04

>>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 7

những cửa sổ

Trên Windows, bạn có thể cài đặt PyAudio với >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 04

>>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 8

kiểm tra cài đặt

Sau khi cài đặt PyAudio, bạn có thể kiểm tra cài đặt từ bảng điều khiển

>>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 9

Đảm bảo micrô mặc định của bạn được bật và tắt tiếng. Nếu quá trình cài đặt đang hoạt động, bạn sẽ thấy như thế này

 

>>> r = sr.Recognizer() 0

Hãy tiếp tục và kiểm tra một chút bằng cách nói vào micrô của bạn và xem tính năng Nhận dạng giọng nói ghi lại lời nói của bạn tốt như thế nào

 

Lưu nó. Nếu bạn đang sử dụng Ubuntu và nhận được một thông báo thú vị như 'ALSA lib.. PCM not found', hãy kiểm tra chủ đề này để biết các mẹo về cách chặn các thông báo này. Điều này đầu tiên đến từ gói ALSA được cài đặt với Ubuntu - không phải SpeechRecognition hay PyAudio. Trên thực tế, những thông báo này có thể chỉ ra sự cố với cấu hình ALSA của bạn, nhưng theo kinh nghiệm của tôi, chúng không ảnh hưởng đến chức năng mã của bạn. Hầu hết chúng đều gây phiền toái

các >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 06Lớp

Mở một phiên dịch khác và tạo một thể hiện của lớp trình nhận dạng

>>> >>> r = sr.Recognizer() 1

Bây giờ, thay vì sử dụng tệp âm thanh làm nguồn, bạn sẽ sử dụng micrô mặc định của hệ thống. Bạn có thể truy cập điều này bằng cách tạo một thể hiện của lớp >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 06

>>> >>> r = sr.Recognizer() 2

Nếu hệ thống của bạn không có micrô mặc định (chẳng hạn như trên Raspberry Pi) hoặc bạn muốn sử dụng micrô khác với micrô mặc định, bạn sẽ cần chỉ định micrô nào sẽ sử dụng bằng cách cung cấp chỉ mục thiết bị. Bạn có thể lấy thư mục micrô bằng cách gọi >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 08 ・ phương thức tĩnh của lớp >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 06

>>> >>> r = sr.Recognizer() 3

Lưu ý rằng đầu của bạn có thể khác với ví dụ trên

Chỉ số thiết bị micrô là chỉ số tên micrô trong danh sách được trả về >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 10Ví dụ. với phần đầu phía trên, nếu bạn muốn dùng micro gọi là "hàng trước", chỉ có số 3 trong danh sách, bạn sẽ tạo một micro như thế này

>>> >>> r = sr.Recognizer() 4

Tuy nhiên, đối với hầu hết các dự án, bạn có thể muốn sử dụng micrô hệ thống mặc định

Sử dụng >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 11 để cắm đầu vào micrô

Bây giờ bạn đã có phiên bản >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 06phiên sẵn sàng để sử dụng, đã đến lúc nắm bắt một số thông tin trước

Cũng như Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 55 lớpọc, >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 06là yên đếnchôn lý ngữ phốy. Bạn có thể bắt đầu từ micrô bằng cách sử dụng phương pháp >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 11 phương của Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 1 lớp bên trong Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 79khối. Phương pháp này lấy nguồn âm thanh làm kết quả khớp đầu tiên và ghi lại đầu vào từ nguồn đó cho đến khi phát hiện thấy âm thanh im lặng.

>>> >>> r = sr.Recognizer() 5

Vì vậy, khi bạn đang ở Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 79khối, hãy thử nói "xin chào" vào micrô của bạn. Đợi một chút để lời nhắc của người dịch hiển thị lại. Khi lời nhắc “>>>” trở lại, bạn đã sẵn sàng nhận định dạng giọng nói

>>> >>> r = sr.Recognizer() 6

Nếu lời nhắc không xuất hiện trở lại, có thể micrô của bạn đang nhận quá nhiều tiếng ồn xung quanh. Bạn có thể ngắt quá trình bằng + ctrl + c ++ để nhận lại lời nhắc

Để xử lý tiếng ồn xung quanh, bạn sẽ cần sử dụng phương pháp Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 55ph của lớp Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 1, giống như bạn đã làm khi cố gắng hiểu tệp âm thanh ồn ào. Vì đầu vào micrô khó đoán hơn nhiều so với đầu vào tệp âm thanh, hãy thực hiện việc này bất cứ khi nào bạn nghe đầu vào micrô

>>> >>> r = sr.Recognizer() 7

Vì vậy, khi mã đang chạy, hãy đợi một giây Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 55 để thực hiện công việc của nó, sau đó thử nói "xin cháo" vào micrô. Một lần nữa, bạn sẽ phải đợi một lúc để lời nhắc của thông dịch viên quay lại trước khi cố gắng nhận dạng định dạng giọng nói

Nhớ ក្រ ក្រង ________ 455 ក្រង្រ្ន្រាន. Nếu điều này có vẻ quá dài đối với bạn, vui lòng chỉnh sửa nó bằng cách sử dụng Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 75đối số đồ khoa

Tài liệu SpeechRecognition khuyến nghị sử dụng thời lượng không ít hơn 0,5 giây. Trong một số trường hợp, bạn có thể thấy rằng thời gian dài hơn mặc định là một giây sẽ tạo ra kết quả tốt hơn. Giá trị tối thiểu bạn cần phụ thuộc vào môi trường xung quanh micrô. Thật không may, thông tin này thường không được biết đến trong quá trình phát triển. Theo kinh nghiệm của tôi, thời gian mặc định là một giây là đủ cho hầu hết các ứng dụng

Không thể nhận dạng được giọng nói xử lý

Hãy thử nhập mã trước đó vào hộp nhập âm thanh và tạo ra một số tiếng ồn khó hiểu vào micrô. Bạn sẽ nhận được một cái gì đó như thế này trong phản ứng

>>> r = sr.Recognizer() 8

Âm thanh mà API không thể khớp với văn bản sẽ tạo ra lỗi >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 24. Bạn phải luôn gói các lệnh gọi API trong các khối >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 25v >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 26 để xử lý ngoại lệ này

Lưu nó. Bạn có thể phải cố gắng nhiều hơn mong đợi để trở thành ngoại lệ. API hoạt động rất cẩn thận để dịch bất kỳ âm thanh nào. Ngay cả những âm càu nàu ngắn cũng được dịch thành những từ như "làm một cái nào" đối với tôi. Hô, tiang vỗ tay v tiang tặc biệt ngữ sẽ tăng liên tục

Kết hợp tất cả lại với nhau. Trò chơi "Joan từ"

Bây giờ bạn đã thấy kiến ​​thức cơ bản về nhận dạng giọng nói với gói SpeechRecognition, hãy sử dụng các kỹ năng mới học được của bạn và viết một trò chơi nhỏ chọn một từ ngẫu nhiên trong danh sách và cho phép người dùng thử đoán từ đó

Đây là toàn bộ kịch bản

>>> r = sr.Recognizer() 9

Hãy phá vỡ điều đó một chút

Các chức năng >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 27 phải mất một Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 1và >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 06ví dụ:. Khóa đầu tiên là >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 30, trong đó boolean cho biết yêu cầu API có thành công hay không. Phím thứ hai ________ 131, là _________ 132 hoặc thông báo lỗi cho biết API không khả dụng hoặc không thể hiểu được giọng nói. Cuối cùng, >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 33phím chứa phần âm thanh của âm thanh được ghi lại bằng micrô

Đầu tiên, hãy kiểm tra xem các con số có chính xác không.

Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 10

Sau đó, >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 11 phương pháp được sử dụng để nhập lại đầu vào micrô

Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 11

Các Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 55 phương phước được dùng để điều chỉnh hình thức nhận biết sao cho các điều kiện thay đổi, âm thanh được nghe thấy mỗi khi >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 27hàm được gọi

Tiếp theo, Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 7 sẽ được gọi để nghe bất kỳ bài phát biểu nào trong bản ghi âm. Một >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 41khối được sử dụng để bắt >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 27và >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 24ngoai và xử lý theo đó. Sự thành công của các yêu cầu API, bất kỳ thông báo lỗi nào và bản sao của bài phát biểu được lưu trữ trong >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 44, >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 45và >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 46phím của >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 47từgừng, sẽ được trả về bởi hàm >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 27

Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 12

Bạn có thể kiểm tra chức năng của ________ 127 bằng cách lưu lệnh trên vào tệp có tên "đoáning_game. py” và chạy phần của nó trong phiên dịch

>>> Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 13

Bản thân trò chơi khá đơn giản. Đầu tiên, một danh sách các từ, số lần đoán tối đa được phép và giới hạn tốc độ được công bố

Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 14

Tiếp theo, một Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 1và >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 06 được tạo ra và một từ được chọn ngẫu nhiên từ >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 52

Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 15

Vì vậy, khi bạn nhập một số hướng dẫn và đợi trong 3 giây, vòng lặp >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 53 được sử dụng để quản lý mỗi lần thử đoán từ đã chọn của người dùng. Điều đầu tiên bên trong >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 53vòng đếp là yên tĩnh >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 53vòng đếp nhác nhạc đường >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 56đoán nhiều lần nhất, mỗi lần cố gắng nhận ra dạng đầu tiên với >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 27hàm và lưu từ điển trả về nhóm biến >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 58

Nếu >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 33từ của >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 58 không phải là >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 32, thì lời nói của người dùng đã được ghi lại và vòng lặp bên trong kết thúc bằng >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 62. Nếu bài phát biểu không được phiên âm và khóa >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 30 được đặt thành >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 64, thì đã xảy ra lỗi API và vòng lặp sẽ kết thúc bằng >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 62. Nếu không, yêu cầu API đã thành công nhưng không thể nhận dạng được định dạng giọng nói. Người dùng được cảnh báo và >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 53 lần lặp đi lặp lại, tạo cho người dùng một cơ hội khác ở lần thử hiện tại

Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 16

Khi vòng lặp ______ 153 kết thúc, điểm ______ 158 sẽ được kiểm tra lỗi. Nếu bất cứ điều gì xảy ra, một thông báo lỗi sẽ được hiển thị và >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 53 trước khi vòng lặp bên ngoài kết thúc >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 62, điều này sẽ kết thúc quá trình thực thi chương trình

Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 17

Nếu không có lỗi, bản âm thanh sẽ được so sánh với từ được chọn ngẫu nhiên. Các >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 71phương thức cho đối tượng chuỗi được sử dụng để đảm bảo kết quả khớp tốt hơn trong việc dự đoán từ đã chọn. API có thể trả về các từ khớp với từ "apple" thành "Apple" hoặc "apple" và một trong những câu trả lời này sẽ được tính là câu trả lời đúng

Nếu đoán đúng, người dùng thắng và trò chơi kết thúc. Nếu người dùng không chính xác và vẫn còn bất kỳ lần thử nào, >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 53 vòng lặp bên ngoài sẽ thử lại và một dự đoán mới sẽ được truy xuất. Nếu không, người dùng sẽ thua trò chơi

Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 18

Khi chạy, đầu sẽ giống như một con cừu

Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 19

Tổng hợp và bổ sung nguồn

Trong hướng dẫn này, bạn đã học cách cài đặt gói SpeechRecognition và sử dụng nó để dễ dàng nhận dạng các mẫu giọng nói từ toàn bộ tệp — bằng cách sử dụng Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 57—từ micrô — >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 75 bằng cách sử dụng các từ khóa Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 74và Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 75ạn Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 57 phương pháp

Bạn đã thấy ảnh hưởng của tiếng ồn đối với độ chính xác của bản ghi và đã học cách điều chỉnh độ nhạy của màn hình đối với tiếng ồn xung quanh. >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 80Bạn cũng biết những ngoại lệ nào mà một phiên bản Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 1 có thể gây ra—>>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 27đór >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 83các yêu cầu API không thể hiểu được và lời nói khó hiểu của >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 83đór đó — và cách xử lý những điều này với các khối >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 41

Nhận dạng giọng nói là một chủ đề sâu sắc và những gì bạn đã học được ở đây hầu như không có gì nổi bật. Nếu bạn muốn tìm hiểu thêm, đây là một số tài nguyên bổ sung

tiền thưởng miễn phí. Nhấp vào đây để tải xuống mẫu nhận dạng giọng nói Python mẫu với mã nguồn đầy đủ mà bạn có thể sử dụng làm cơ sở cho các ứng dụng nhận dạng giọng nói của riêng mình

Để biết thêm thông tin về gói SpeechRecognition

  • thư viện tham khảo
  • ví dụ
  • trang khắc phục sự cố

Một số tài nguyên Internet thú vị

  • Pia sau trống. Học cách nói chuyện với máy tính. Một bộ phim ngắn về xử lý giọng nói của Google
  • Khi lịch sử của Huang, Baker và giọng nói của Reddy được công nhận. Truyền thông của ACM (2014). Bài viết này cung cấp một cái nhìn tổng quan chuyên sâu và học thuật về sự phát triển của công nghệ nhận dạng giọng nói
  • Quá khứ, hiện tại và tương lai của công nghệ được trình bày qua giọng nói của Clark Boyd tại The Startup. Bài đăng trên blog này cung cấp một cái nhìn tổng quan về công nghệ nhận dạng giọng nói, với một số suy nghĩ về tương lai

Có một số cuốn sách về nhận dạng giọng nói

  • Anh ấy nói chuyện điện thoại. Xây dựng một máy tính để hiểu lời nói, Pieraccini, MIT Press (2012). Một cuốn sách có thể truy cập cho công chúng nói chung về lịch sử cũng như những tiến bộ hiện đại trong xử lý lời nói
  • Nguyên tắc cơ bản của nhận dạng giọng nói, Rabiner và Juang, Prentice Hall (1993). Rabiner, một nhà nghiên cứu tại Bell Labs, là người có công trong việc thiết kế một số công cụ nhận dạng giọng nói khả thi về mặt thương mại đầu tiên. Cuốn sách này đã hơn 20 năm tuổi, nhưng nhiều nguyên tắc cơ bản vẫn còn nguyên vẹn
  • Nhận dạng giọng nói tự động. Phương pháp học sâu, Yu và Deng, Springer (2014). Yu và Deng là nhà nghiên cứu tại Microsoft và cả hai đều rất tích cực trong lĩnh vực xử lý giọng nói. Cuốn sách này bao gồm nhiều phương pháp tiếp cận hiện đại và nghiên cứu tiên tiến, nhưng không dành cho người yếu tim.

ruột thừa. Nhận dạng các mẫu giọng nói trong các ngôn ngữ khác ngoài tiếng Anh

Xuyên suốt hướng dẫn này, chúng tôi đã nhận dạng định dạng giọng nói bằng tiếng Anh, đây là ngôn ngữ mặc định cho mỗi phương pháp >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 24″ của Nhận dạng giọng nói của chúng tôi. Tuy nhiên, bạn hoàn toàn có thể nhận dạng được định dạng giọng nói của các ngôn ngữ khác và cách thực hiện khá đơn giản

Để nhận dạng mẫu giọng nói trong một ngôn ngữ khác, hãy đặt số đối số >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 86 từ từ khóa của >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 24 phương thành một chuỗi tương ứng với ngôn ngữ bạn muốn. Hầu hết các phương thức đều chấp nhận thẻ ngôn ngữ BCP-47, chẳng hạn như >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 88tiếng Anh Mỹ hoặc >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 89tiếng Pháp. Ví dụ. Một phần nó nhận ra giọng nói của ngôn ngữ tiếng Pháp trong tệp âm thanh

Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 0

Chỉ những phương pháp này được chấp nhận

  • Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 6
  • Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 7
  • Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 8
  • >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 20
  • >>> import speech_recognition as sr >>> sr.__version__ '3.8.1' 21

Để biết API bạn đang sử dụng hỗ trợ thẻ ngôn ngữ nào, bạn sẽ phải tham khảo tài liệu tương ứng. Stack Overflow

Chủ đề