Hướng dẫn how do i use voice input in python? - làm cách nào để sử dụng tính năng nhập liệu bằng giọng nói trong python?

Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem cùng với hướng dẫn bằng văn bản để hiểu sâu hơn về sự hiểu biết của bạn: Nhận dạng giọng nói với Python This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Speech Recognition With Python

Show

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 bạn? Nếu vậy, sau đó tiếp tục đọc! Nó dễ dàng hơn bạn nghĩ.

Khác xa với việc trở thành một mốt nhất thời, thành công lớn của các sản phẩm hỗ trợ lời nói như Amazon Alexa đã chứng minh rằng một mức độ hỗ trợ lời nói nào đó sẽ là một khía cạnh thiết yếu của công nghệ gia đình trong tương lai gần. Nếu bạn nghĩ về nó, lý do tại sao khá rõ ràng. Kết hợp nhận dạng giọng nói vào ứng dụng Python của bạn cung cấp một mức độ tương tác và khả năng tiếp cận mà một số công nghệ có thể phù hợp.

Các cải tiến khả năng tiếp cận một mình là đáng để xem xét. Nhận dạng giọng nói cho phép người già và người khiếm thị và thị giác 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 cả nhận dạng giọng nói trong một dự án Python thực sự đơn giản. Trong hướng dẫn này, bạn sẽ tìm ra cách. Bạn sẽ học:

  • Cách nhận dạng giọng nói hoạt động,
  • Những gói nào có sẵn trên PYPI; và
  • Cách cài đặt và sử dụng gói phát biểu, một 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ì bạn đã học được với một trò chơi đơn giản của Word và xem tất cả kết hợp với nhau như thế nào.

Cách thức nhận dạng giọng nói hoạt động - Tổng quan

Trước khi chúng ta đến với sự nhận biết giọng nói trong Python, hãy để Lôi dành một chút thời gian để nói về cách thức nhận dạng giọng nói hoạt động. Một cuộc thảo luận đầy đủ sẽ lấp đầy một cuốn sách, vì vậy tôi đã giành được 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 phải là điều kiện tiên quyết cho 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 đề, thì hãy thoải mái bỏ qua phía trước.

Nhận dạng giọng nói có nguồn gốc 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 trong một loa duy nhất và có giới hạn từ vựng 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 đối tác cổ xưa của họ. Họ có thể nhận ra lời nói từ nhiều người nói và có từ vựng khổng lồ bằng nhiều ngôn ngữ.

Thành phần đầu tiên của nhận dạng giọng nói là, tất nhiên, là bài phát biểu. 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ô, và sau đó sang dữ liệu kỹ thuật số với bộ chuyển đổi tương tự sang số. Sau khi được số hóa, một số mô hình có thể được sử dụng để phiên âm â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 vào những gì đượ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 tín hiệu giọng nói, khi được xem trong một khoảng thời gian đủ ngắn (giả sử, mười mili giây), có thể được xấp xỉ một cách hợp lý như một quá trình đứng yên, đó 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 giọng nói được chia thành các mảnh 10 phần giây. Phổ công suất của mỗi đoạn, về cơ bản là một biểu đồ của công suất tín hiệu là một hàm của tần số, được ánh xạ tới một vectơ có số thực được gọi là các hệ số cepstral. Kích thước của vectơ này thường là 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ó kích thước 32 trở lên. Đầu ra cuối cùng của HMM là một chuỗi của 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 vị của một đơn vị bài phát biểu cơ bản. Tính toán này đòi hỏi phải đào tạo, vì âm thanh của âm vị thay đổi từ loa này sang loa khác, và thậm chí thay đổi từ cách nói này sang cách khác bởi cùng một người nói. Một thuật toán đặc biệt sau đó được áp dụng để xác định từ (hoặc từ) có khả năng nhất tạo ra chuỗi âm vị đã cho.

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, các 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 để chuyển đổi tính năng và giảm kích thước trước khi nhận dạng HMM. Máy dò hoạt động bằng giọng nói (VAD) cũng được sử dụng để giảm tín hiệu âm thanh chỉ còn các phần có khả năng chứa lời nói. Điều này ngăn chặ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, với tư cách là một lập trình viên Python, bạn không phải lo lắng về điều 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 thông qua API và nhiều dịch vụ này cung cấp SDK Python.

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

Một số gói để nhận dạng giọng nói tồn tại trên PYPI. Một vài trong số chúng bao gồm:

  • Apiai
  • lắp ráp
  • google-cloud-speech
  • Pocketsphinx
  • Nhận dạng giọng nói
  • watson-developer-cloud
  • mưu mẹo

Một số trong các gói này, ví dụ như Wit và Apiai, cung cấp các tính năng tích hợp, như xử lý ngôn ngữ tự nhiên để xác định ý định của người nói, vượt ra ngoài nhận dạng giọng nói cơ bản. Những người khác, như Google-Cloud-Speech, chỉ tập trung vào chuyển đổi lời nói sang văn bản.

Có một gói nổi bật về mặt dễ sử dụng: nhận thức lời nói.

Nhận biết lời nói đòi hỏi đầu vào âm thanh và nhận thức lời nói giúp việc truy xuất đầu vào này thực sự dễ dàng. Thay vì phải xây dựng các tập lệnh để truy cập micrô và xử lý các tệp âm thanh từ đầu, nhận thức về lời nói sẽ giúp bạn đứng dậy và chạy chỉ trong vài phút.

Thư viện bài phát biểu hoạt động như một trình bao bọc cho một số API phát biểu phổ biến và do đó cực kỳ linh hoạt. Một trong những điều này, API bài phát biểu trên web của Google đã hỗ trợ khóa API mặc định được mã hóa cứng vào thư viện nhận thức. Điều đó có nghĩa là bạn có thể tắt 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 nhận thức bài phát biểu làm cho nó trở thành một lựa chọn tuyệt vời cho bất kỳ dự án Python nào. Tuy nhiên, hỗ trợ cho mọi tính năng của mỗi API mà nó kết thúc không được đảm bảo. Bạn sẽ cần dành một chút thời gian để nghiên cứu các tùy chọn có sẵn để tìm hiểu xem việc nhận thức lời nói có hoạt động trong trường hợp cụ thể của bạn không.

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

Cài đặt nhận thức lời nói

TIẾNG VIỆT TUYỆT VỜI Tương thích với Python 2.6, 2.7 và 3.3+, nhưng yêu cầu một số bước cài đặt bổ sung cho Python 2. Đối với hướng dẫn này, tôi sẽ giả sử rằng bạn đang sử dụng Python 3.3+.

Bạn có thể cài đặt trình diễn nhận thức từ một thiết bị đầu cuối với PIP:

$ pip install SpeechRecognition

Sau khi cài đặt, bạn nên xác minh cài đặt bằng cách mở phiên phiên dịch và gõ:

>>>

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

Hãy tiếp tục và giữ cho phiên này mở. Bạn sẽ bắt đầu làm việc với nó chỉ một chút.

Bài phát biểu sẽ hoạt động ra khỏi hộp 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ó. Các trường hợp sử dụng cụ thể, tuy nhiên, đòi hỏi một vài phụ thuộc. Đáng chú ý, gói Pyaudio là cần thiết để thu thập đầu vào micrô.

Bạn sẽ thấy những phụ thuộc nào bạn cần khi bạn đọc thêm. Hiện tại, hãy để Lặn lặn và khám phá những điều cơ bản của gói.

Lớp Traceback (most recent call last): File "", line 1, in TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 0

Tất cả các phép thuật trong nhận thức lời nói xảy ra với lớp

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

Tất nhiên, mục đích chính của một ví dụ

Traceback (most recent call last):
  File "", line 1, in 
TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
0 là để nhận ra lời nói. Mỗi trường hợp đi kèm với một loạt các cài đặt và chức năng để nhận ra lời nói từ một nguồn âm thanh.

Tạo một ví dụ

Traceback (most recent call last):
  File "", line 1, in 
TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
0 là dễ dàng. Trong phiên phiên dịch hiện tại của bạn, chỉ cần nhập:

>>>

>>> r = sr.Recognizer()

Hãy tiếp tục và giữ cho phiên này mở. Bạn sẽ bắt đầu làm việc với nó chỉ một chút.

  • Bài phát biểu sẽ hoạt động ra khỏi hộp 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ó. Các trường hợp sử dụng cụ thể, tuy nhiên, đòi hỏi một vài phụ thuộc. Đáng chú ý, gói Pyaudio là cần thiết để thu thập đầu vào micrô.
  • Bạn sẽ thấy những phụ thuộc nào bạn cần khi bạn đọc thêm. Hiện tại, hãy để Lặn lặn và khám phá những điều cơ bản của gói.
  • Lớp
    Traceback (most recent call last):
      File "", line 1, in 
    TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
    
    0
  • Tất cả các phép thuật trong nhận thức lời nói xảy ra với lớp
    Traceback (most recent call last):
      File "", line 1, in 
    TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
    
    0.
  • Tất nhiên, mục đích chính của một ví dụ
    Traceback (most recent call last):
      File "", line 1, in 
    TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
    
    0 là để nhận ra lời nói. Mỗi trường hợp đi kèm với một loạt các cài đặt và chức năng để nhận ra lời nói từ một nguồn âm thanh.
  • Tạo một ví dụ
    Traceback (most recent call last):
      File "", line 1, in 
    TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
    
    0 là dễ dàng. Trong phiên phiên dịch hiện tại của bạn, chỉ cần nhập:
  • Mỗi ví dụ
    Traceback (most recent call last):
      File "", line 1, in 
    TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
    
    0 có bảy phương pháp để nhận ra bài phát biểu từ nguồn âm thanh bằng cách sử dụng các API khác nhau. Đó là:

Traceback (most recent call last):
  File "", line 1, in 
TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
5: Bài phát biểu của Microsoft Bing

Traceback (most recent call last):
  File "", line 1, in 
TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
6: API bài phát biểu trên web của Google

Traceback (most recent call last):
  File "", line 1, in 
TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
7: Bài phát biểu trên đám mây của Google-Yêu cầu cài đặt gói Google-Cloud-Speech

Traceback (most recent call last):
  File "", line 1, in 
TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
8: Houndify by Soundhound

>>>

>>> r.recognize_google()

Hãy tiếp tục và giữ cho phiên này mở. Bạn sẽ bắt đầu làm việc với nó chỉ một chút.

Bài phát biểu sẽ hoạt động ra khỏi hộp 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ó. Các trường hợp sử dụng cụ thể, tuy nhiên, đòi hỏi một vài phụ thuộc. Đáng chú ý, gói Pyaudio là cần thiết để thu thập đầu vào micrô.

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

Bạn sẽ thấy những phụ thuộc nào bạn cần khi bạn đọc thêm. Hiện tại, hãy để Lặn lặn và khám phá những điều cơ bản của gói.

Lớp

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

Tất cả các phép thuật trong nhận thức lời nói xảy ra với lớp

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

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

Trước khi bạn tiếp tục, bạn sẽ cần tải xuống một tệp âm thanh. Người tôi đã từng bắt đầu, có thể tìm thấy ở đây. Hãy chắc chắn rằng bạn lưu nó vào cùng một thư mục trong đó phiên phiên dịch Python của bạn đang chạy.

Bài phát biểu nhận thức giúp làm việc với các tệp âm thanh dễ dàng nhờ lớp

>>> type(audio)

4 tiện dụng của nó. Lớp này có thể được khởi tạo với đườ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: Phải là định dạng FLAC gốc; OGG-FLAC không được hỗ trợ

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 vấn đề gì. 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 bạn có quyền truy cập vào công cụ dòng lệnh

>>> type(audio)

5. 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 >>> type(audio) 6 để ghi dữ liệu từ một tệp

Nhập phần sau vào phiên phiên dịch của bạn để xử lý nội dung của tệp Harvard Harvard.wav.wav:

>>>

>>> harvard = sr.AudioFile('harvard.wav')
>>> with harvard as source:
...    audio = r.record(source)
...

Trình quản lý bối cảnh mở tệp và đọc nội dung của nó, lưu trữ dữ liệu trong một phiên bản

>>> type(audio)

4 được gọi là
>>> type(audio)

8 sau đó phương thức
>>> type(audio)

6 ghi lại dữ liệu từ toàn bộ tệp thành một thể hiện
>>> type(audio)

2. Bạn có thể xác nhận điều này bằng cách kiểm tra loại
>>> r.recognize_google(audio)
'the stale smell of old beer lingers it takes heat
to bring out the odor a cold dip restores health and
zest a salt pickle taste fine with ham tacos al
Pastore are my favorite a zestful food is the hot
cross bun'
1:

>>>

>>> type(audio)

Trình quản lý bối cảnh mở tệp và đọc nội dung của nó, lưu trữ dữ liệu trong một phiên bản

>>> type(audio)

4 được gọi là
>>> type(audio)

8 sau đó phương thức
>>> type(audio)

6 ghi lại dữ liệu từ toàn bộ tệp thành một thể hiện
>>> type(audio)

2. Bạn có thể xác nhận điều này bằng cách kiểm tra loại
>>> r.recognize_google(audio)
'the stale smell of old beer lingers it takes heat
to bring out the odor a cold dip restores health and
zest a salt pickle taste fine with ham tacos al
Pastore are my favorite a zestful food is the hot
cross bun'
1:

>>>

>>> r.recognize_google(audio)
'the stale smell of old beer lingers it takes heat
to bring out the odor a cold dip restores health and
zest a salt pickle taste fine with ham tacos al
Pastore are my favorite a zestful food is the hot
cross bun'

Trình quản lý bối cảnh mở tệp và đọc nội dung của nó, lưu trữ dữ liệu trong một phiên bản

>>> type(audio)

4 được gọi là
>>> type(audio)

8 sau đó phương thức
>>> type(audio)

6 ghi lại dữ liệu từ toàn bộ tệp thành một thể hiện
>>> type(audio)

2. Bạn có thể xác nhận điều này bằng cách kiểm tra loại
>>> r.recognize_google(audio)
'the stale smell of old beer lingers it takes heat
to bring out the odor a cold dip restores health and
zest a salt pickle taste fine with ham tacos al
Pastore are my favorite a zestful food is the hot
cross bun'
1:

Bây giờ bạn có thể gọi

Traceback (most recent call last):
  File "", line 1, in 
TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
6 để cố gắng nhận ra bất kỳ bài phát biểu nào trong âm thanh. 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 thấy kết quả.

Xin chúc mừng! Bạn chỉ cần sao chép tệp âm thanh đầu tiên của bạn!

Nếu bạn đang tự hỏi nơi các cụm từ trong tệp Harvard Harvard.wav đến từ đâu, chúng là những ví dụ về các câu Harvard. Những cụm từ này đã được IEEE xuất bản vào năm 1965 để sử dụng trong thử nghiệm thông minh lời nói của các đường dây điện thoại. Chúng vẫn được sử dụng trong thử nghiệm VoIP và tế bào ngày nay.

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

Nắm bắt các phân đoạn với

>>> r.recognize_google(audio)
'the stale smell of old beer lingers it takes heat
to bring out the odor a cold dip restores health and
zest a salt pickle taste fine with ham tacos al
Pastore are my favorite a zestful food is the hot
cross bun'
3 và
>>> r.recognize_google(audio)
'the stale smell of old beer lingers it takes heat
to bring out the odor a cold dip restores health and
zest a salt pickle taste fine with ham tacos al
Pastore are my favorite a zestful food is the hot
cross bun'
4

>>>

>>> with harvard as source:
...     audio = r.record(source, duration=4)
...
>>> r.recognize_google(audio)
'the stale smell of old beer lingers'

Trình quản lý bối cảnh mở tệp và đọc nội dung của nó, lưu trữ dữ liệu trong một phiên bản

>>> type(audio)

4 được gọi là
>>> type(audio)

8 sau đó phương thức
>>> type(audio)

6 ghi lại dữ liệu từ toàn bộ tệp thành một thể hiện
>>> type(audio)

2. Bạn có thể xác nhận điều này bằng cách kiểm tra loại
>>> r.recognize_google(audio)
'the stale smell of old beer lingers it takes heat
to bring out the odor a cold dip restores health and
zest a salt pickle taste fine with ham tacos al
Pastore are my favorite a zestful food is the hot
cross bun'
1:

>>>

>>> with harvard as source:
...     audio1 = r.record(source, duration=4)
...     audio2 = r.record(source, duration=4)
...
>>> r.recognize_google(audio1)
'the stale smell of old beer lingers'
>>> r.recognize_google(audio2)
'it takes heat to bring out the odor a cold dip'

Trình quản lý bối cảnh mở tệp và đọc nội dung của nó, lưu trữ dữ liệu trong một phiên bản

>>> type(audio)

4 được gọi là
>>> type(audio)

8 sau đó phương thức
>>> type(audio)

6 ghi lại dữ liệu từ toàn bộ tệp thành một thể hiện
>>> type(audio)

2. Bạn có thể xác nhận điều này bằng cách kiểm tra loại
>>> r.recognize_google(audio)
'the stale smell of old beer lingers it takes heat
to bring out the odor a cold dip restores health and
zest a salt pickle taste fine with ham tacos al
Pastore are my favorite a zestful food is the hot
cross bun'
1:

Bây giờ bạn có thể gọi

Traceback (most recent call last):
  File "", line 1, in 
TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
6 để cố gắng nhận ra bất kỳ bài phát biểu nào trong âm thanh. 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 thấy kết quả.

Xin chúc mừng! Bạn chỉ cần sao chép tệp âm thanh đầu tiên của bạn!

>>>

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

Trình quản lý bối cảnh mở tệp và đọc nội dung của nó, lưu trữ dữ liệu trong một phiên bản

>>> type(audio)

4 được gọi là
>>> type(audio)

8 sau đó phương thức
>>> type(audio)

6 ghi lại dữ liệu từ toàn bộ tệp thành một thể hiện
>>> type(audio)

2. Bạn có thể xác nhận điều này bằng cách kiểm tra loại
>>> r.recognize_google(audio)
'the stale smell of old beer lingers it takes heat
to bring out the odor a cold dip restores health and
zest a salt pickle taste fine with ham tacos al
Pastore are my favorite a zestful food is the hot
cross bun'
1:

>>>

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

Trình quản lý bối cảnh mở tệp và đọc nội dung của nó, lưu trữ dữ liệu trong một phiên bản

>>> type(audio)

4 được gọi là
>>> type(audio)

8 sau đó phương thức
>>> type(audio)

6 ghi lại dữ liệu từ toàn bộ tệp thành một thể hiện
>>> type(audio)

2. Bạn có thể xác nhận điều này bằng cách kiểm tra loại
>>> r.recognize_google(audio)
'the stale smell of old beer lingers it takes heat
to bring out the odor a cold dip restores health and
zest a salt pickle taste fine with ham tacos al
Pastore are my favorite a zestful food is the hot
cross bun'
1:

Bây giờ bạn có thể gọi

Traceback (most recent call last):
  File "", line 1, in 
TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
6 để cố gắng nhận ra bất kỳ bài phát biểu nào trong âm thanh. 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 thấy kết quả.

Xin chúc mừng! Bạn chỉ cần sao chép tệp âm thanh đầu tiên của bạn!

Nếu bạn đang tự hỏi nơi các cụm từ trong tệp Harvard Harvard.wav đến từ đâu, chúng là những ví dụ về các câu Harvard. Những cụm từ này đã được IEEE xuất bản vào năm 1965 để sử dụng trong thử nghiệm thông minh lời nói của các đường dây điện thoại. Chúng vẫn được sử dụng trong thử nghiệm VoIP và tế bào ngày nay.

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

Để cảm nhận về cách thức tiếng ồn có thể ảnh hưởng đến nhận dạng giọng nói, hãy tải xuống tệp jackhammer.wav, tại đây. Như mọi khi, hãy chắc chắn rằng bạn lưu nó vào thư mục làm việc phiên phiên dịch của bạn.

Tệp này có cụm từ mùi hôi thối của bia cũ nán lại, nói với một cái búa lớn ở phía sau.

Điều gì xảy ra khi bạn cố gắng phiên âm tệp này?

>>>

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

Đường tắt!

Vậy làm thế nào để bạn đối phó với điều này? Một điều bạn có thể thử là sử dụng phương pháp

>>> with harvard as source:
...     audio = r.record(source, duration=4)
...
>>> r.recognize_google(audio)
'the stale smell of old beer lingers'
4 của lớp
Traceback (most recent call last):
  File "", line 1, in 
TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
0.

>>>

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

Đường tắt!

Vậy làm thế nào để bạn đối phó với điều này? Một điều bạn có thể thử là sử dụng phương pháp

>>> with harvard as source:
...     audio = r.record(source, duration=4)
...
>>> r.recognize_google(audio)
'the stale smell of old beer lingers'
4 của lớp
Traceback (most recent call last):
  File "", line 1, in 
TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
0.

Điều đó khiến bạn gần gũi hơn với cụm từ thực tế, nhưng nó vẫn không hoàn hảo. Ngoài ra, người Viking bị thiếu từ đầu cụm từ. Tại sao vậy?

>>>

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

Đường tắt!

Vậy làm thế nào để bạn đối phó với điều này? Một điều bạn có thể thử là sử dụng phương pháp

>>> with harvard as source:
...     audio = r.record(source, duration=4)
...
>>> r.recognize_google(audio)
'the stale smell of old beer lingers'
4 của lớp
Traceback (most recent call last):
  File "", line 1, in 
TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
0.

Điều đó khiến bạn gần gũi hơn với cụm từ thực tế, nhưng nó vẫn không hoàn hảo. Ngoài ra, người Viking bị thiếu từ đầu cụm từ. Tại sao vậy?

Phương thức

>>> with harvard as source:
...     audio = r.record(source, duration=4)
...
>>> r.recognize_google(audio)
'the stale smell of old beer lingers'
4 đọc phần thứ hai đầu tiên của luồng tệp và hiệu chỉnh trình nhận dạng đến mức nhiễu của âm thanh. Do đó, phần đó của luồng được tiêu thụ trước khi bạn gọi
>>> type(audio)

6 để thu thập dữ liệu.

>>>

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

Đường tắt!

Vậy làm thế nào để bạn đối phó với điều này? Một điều bạn có thể thử là sử dụng phương pháp

>>> with harvard as source:
...     audio = r.record(source, duration=4)
...
>>> r.recognize_google(audio)
'the stale smell of old beer lingers'
4 của lớp
Traceback (most recent call last):
  File "", line 1, in 
TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
0.

Điều đó khiến bạn gần gũi hơn với cụm từ thực tế, nhưng nó vẫn không hoàn hảo. Ngoài ra, người Viking bị thiếu từ đầu cụm từ. Tại sao vậy?

Phương thức >>> with harvard as source: ... audio = r.record(source, duration=4) ... >>> r.recognize_google(audio) 'the stale smell of old beer lingers' 4 đọc phần thứ hai đầu tiên của luồng tệp và hiệu chỉnh trình nhận dạng đến mức nhiễu của âm thanh. Do đó, phần đó của luồng được tiêu thụ trước khi bạn gọi >>> type(audio) 6 để thu thập dữ liệu.

Bạn có thể điều chỉnh khung thời gian mà

>>> with harvard as source:
...     audio = r.record(source, duration=4)
...
>>> r.recognize_google(audio)
'the stale smell of old beer lingers'
4 sử dụng để phân tích với đối số từ khóa
>>> r.recognize_google(audio)
'the stale smell of old beer lingers it takes heat
to bring out the odor a cold dip restores health and
zest a salt pickle taste fine with ham tacos al
Pastore are my favorite a zestful food is the hot
cross bun'
4. Đối số này có giá trị số tính bằng giây và được đặt thành 1 theo mặc định. Hãy thử hạ giá trị này xuống 0,5.

Chà, điều đó đã có cho bạn những người khác khi bắt đầu cụm từ, nhưng bây giờ bạn có một số 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á ồn ào để được xử lý thành công. Đó là trường hợp với tập tin này.

Nếu bạn thấy mình chạy lên chống lại những vấn đề này thường xuyên, bạn có thể phải dùng đến một số tiền xử lý âm thanh. Điều này có thể được thực hiện với 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 các bộ lọc cho các tệp. Một cuộc thảo luận chi tiết về điều này nằm ngoài phạm vi của hướng dẫn này, hãy kiểm tra Allen Downey, nghĩ rằng cuốn sách DSP 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 vấn đề 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 ồn ào, 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 chứa nhiều phiên âm có thể. Phương pháp
Traceback (most recent call last):
  File "", line 1, in 
TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
6 sẽ luôn trả về phiên âm có khả năng nhất trừ khi bạn buộc nó cung cấp cho bạn phản hồi đầy đủ.

Bạn có thể làm điều này bằng cách đặt đối số từ khóa

>>> with harvard as source:
...     audio1 = r.record(source, duration=4)
...     audio2 = r.record(source, duration=4)
...
>>> r.recognize_google(audio1)
'the stale smell of old beer lingers'
>>> r.recognize_google(audio2)
'it takes heat to bring out the odor a cold dip'
1 của phương thức
Traceback (most recent call last):
  File "", line 1, in 
TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
6 thành
>>> with harvard as source:
...     audio1 = r.record(source, duration=4)
...     audio2 = r.record(source, duration=4)
...
>>> r.recognize_google(audio1)
'the stale smell of old beer lingers'
>>> r.recognize_google(audio2)
'it takes heat to bring out the odor a cold dip'
3

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

Như bạn có thể thấy,

Traceback (most recent call last):
  File "", line 1, in 
TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
6 trả về một từ điển với khóa
>>> with harvard as source:
...     audio1 = r.record(source, duration=4)
...     audio2 = r.record(source, duration=4)
...
>>> r.recognize_google(audio1)
'the stale smell of old beer lingers'
>>> r.recognize_google(audio2)
'it takes heat to bring out the odor a cold dip'
5 chỉ vào 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ể thay đổi từ API đến API và chủ yếu là hữu ích cho việc 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 gói nhận thức. Bạn đã thấy cách tạo một thể hiện
>>> type(audio)

4 từ tệp âm thanh và sử dụng phương thức
>>> type(audio)

6 để thu thập dữ liệu từ tệp. Bạn đã học cách ghi lại các phân đoạn của tệp bằng cách sử dụng các đối số từ khóa
>>> r.recognize_google(audio)
'the stale smell of old beer lingers it takes heat
to bring out the odor a cold dip restores health and
zest a salt pickle taste fine with ham tacos al
Pastore are my favorite a zestful food is the hot
cross bun'
3 và
>>> r.recognize_google(audio)
'the stale smell of old beer lingers it takes heat
to bring out the odor a cold dip restores health and
zest a salt pickle taste fine with ham tacos al
Pastore are my favorite a zestful food is the hot
cross bun'
4 của
>>> type(audio)

6 và bạn đã trải qua tiếng ồn hiệu ứng bất lợi có thể có về độ chính xác phiên mã.

Bây giờ cho phần thú vị. Hãy để chuyển đổi từ việc sao chép các tệp âm thanh tĩnh sang 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ô.

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

Làm việc với micro

Để truy cập micrô của bạn bằng trình diễn viên, bạn sẽ phải cài đặt gói pyaudio. Hãy tiếp tục và đóng phiên phiên dịch hiện tại của bạn, và hãy để Lôi làm điều đó.

Cài đặt Pyaudio

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

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

Debian Linux

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

Nếu bạn trên 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'
01:

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' 02, đặc biệt nếu bạn đang làm việc trong môi trường ảo.

hệ điều hành Mac

>>>

>>> r = sr.Recognizer()
0

Đường tắt!

>>>

>>> r = sr.Recognizer()
1

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 ngoài mặc định, bạn sẽ cần chỉ định cái nào sẽ sử dụng bằng cách cung cấp chỉ mục thiết bị. Bạn có thể nhận được một danh sách các tên micrô bằng cách gọi phương thức tĩnh ____107 của lớp

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

>>>

>>> r = sr.Recognizer()
2

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

Chỉ số thiết bị của micrô là chỉ mục của tên của nó trong danh sách được trả về bởi

>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
09 chẳng hạn, với đầu ra ở trên, nếu bạn muốn sử dụng micrô có tên là Front Front, có chỉ số 3 trong danh sách, bạn sẽ tạo phiên bản micrô như thế này:

>>>

>>> r = sr.Recognizer()
3

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' 10 để ghi lại đầu vào micrô

Bây giờ bạn đã có một ví dụ

>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
05 sẵn sàng để đi, đó là thời gian để nắm bắt một số đầu vào.

Giống như lớp

>>> type(audio)

4,
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
05 là người quản lý ngữ cảnh. Bạn có thể chụp đầu vào từ micrô bằng phương pháp
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
10 của lớp
Traceback (most recent call last):
  File "", line 1, in 
TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
0 bên trong khối
>>> r.recognize_google(audio)
'the stale smell of old beer lingers it takes heat
to bring out the odor a cold dip restores health and
zest a salt pickle taste fine with ham tacos al
Pastore are my favorite a zestful food is the hot
cross bun'
8. Phương pháp này lấy một nguồn âm thanh làm đối số đầu tiên và ghi lại đầu vào từ nguồn cho đến khi phát hiện sự im lặng.

>>>

>>> r = sr.Recognizer()
4

Khi bạn thực hiện khối

>>> r.recognize_google(audio)
'the stale smell of old beer lingers it takes heat
to bring out the odor a cold dip restores health and
zest a salt pickle taste fine with ham tacos al
Pastore are my favorite a zestful food is the hot
cross bun'
8, hãy thử nói về Hello Hello vào micrô của bạn. Đợi một chút thời gian để lời nhắc phiên dịch hiển thị lại. Khi lời nhắc của người Viking >>> trả lại, bạn đã sẵn sàng nhận ra bài phát biểu.

>>>

>>> r = sr.Recognizer()
5

Nếu lời nhắc không bao giờ quay trở lại, micrô của bạn rất có thể sẽ thu được quá nhiều tiếng ồn xung quanh. Bạn có thể làm gián đoạn quá trình với Ctrl+C để lấy lại lời nhắc của bạn.Ctrl+C to get your prompt back.

Để xử lý nhiễu xung quanh, bạn sẽ cần sử dụng phương pháp

>>> with harvard as source:
...     audio = r.record(source, duration=4)
...
>>> r.recognize_google(audio)
'the stale smell of old beer lingers'
4 của lớp
Traceback (most recent call last):
  File "", line 1, in 
TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
0, giống như bạn đã làm khi cố gắng hiểu được tệp âm thanh ồn ào. Vì đầu vào từ micrô ít được dự đoán hơn nhiều so với đầu vào từ tệp âm thanh, nên nên thực hiện điều này bất cứ khi nào bạn nghe đầu vào micrô.

>>>

>>> r = sr.Recognizer()
6

Sau khi chạy mã trên, hãy đợi một giây cho

>>> with harvard as source:
...     audio = r.record(source, duration=4)
...
>>> r.recognize_google(audio)
'the stale smell of old beer lingers'
4 để làm việc của nó, sau đó thử nói về Hello Hello vào micrô. Một lần nữa, bạn sẽ phải đợi một chút thời gian để lời nhắc phiên dịch trở lại trước khi cố gắng nhận ra bài phát biểu.

Hãy nhớ lại rằng

>>> with harvard as source:
...     audio = r.record(source, duration=4)
...
>>> r.recognize_google(audio)
'the stale smell of old beer lingers'
4 phân tích nguồn âm thanh trong một giây. Nếu điều này có vẻ quá dài đối với bạn, hãy thoải mái điều chỉnh điều này với đối số từ khóa
>>> r.recognize_google(audio)
'the stale smell of old beer lingers it takes heat
to bring out the odor a cold dip restores health and
zest a salt pickle taste fine with ham tacos al
Pastore are my favorite a zestful food is the hot
cross bun'
4.

Tài liệu nhận thức lời nói khuyến nghị sử dụng thời lượng không dưới 0,5 giây. Trong một số trường hợp, bạn có thể thấy rằng thời lượng dài hơn mặc định của một giây 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 trong quá trình phát triển. Theo kinh nghiệm của tôi, thời lượng mặc định là một giây là đủ cho hầu hết các ứng dụng.

Xử lý bài phát biểu không thể nhận ra

Hãy thử gõ ví dụ mã trước vào Interpeter và tạo một số tiếng ồn không thể hiểu được vào micrô. Bạn nên nhận được một cái gì đó như thế này để đáp lại:

>>> r = sr.Recognizer()
7

Âm thanh không thể được khớp với văn bản bởi API làm tăng ngoại lệ

>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
23. Bạn nên luôn luôn kết thúc các cuộc gọi đến API với các khối
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
24 và
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
25 để xử lý ngoại lệ này.

Đặt tất cả lại với nhau: một trò chơi "đoán" trò chơi "

Bây giờ, bạn đã thấy những điều cơ bản về việc nhận ra lời nói với gói nhận thức lời nói, hãy để Lôi đặt kiến ​​thức mới của bạn để sử dụng và viết một trò chơi nhỏ chọn một từ ngẫu nhiên từ một danh sách và cho người dùng ba nỗ lực đoán từ này.

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

>>> r = sr.Recognizer()
8

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

Hàm

>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
26 lấy ví dụ
Traceback (most recent call last):
  File "", line 1, in 
TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
0 và
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
05 làm đối số và trả về từ điển với ba khóa. Chìa khóa đầu tiên,
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
29, là Boolean cho biết liệu yêu cầu API có thành công hay không. Khóa thứ hai,
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
30, là
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
31 hoặc thông báo lỗi cho biết API không có sẵn hoặc bài phát biểu không thể hiểu được. Cuối cùng, khóa
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
32 chứa phiên âm của âm thanh được ghi bằng micrô.

Hàm trước tiên kiểm tra xem các đối số

>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
33 và
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
34 thuộc loại chính xác và tăng
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
35 nếu một trong hai không hợp lệ:

>>> r = sr.Recognizer()
9

Phương pháp

>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
10 sau đó được sử dụng để ghi lại đầu vào micrô:

>>> r.recognize_google()
0

Phương pháp

>>> with harvard as source:
...     audio = r.record(source, duration=4)
...
>>> r.recognize_google(audio)
'the stale smell of old beer lingers'
4 được sử dụng để hiệu chỉnh bộ nhận dạng để thay đổi điều kiện nhiễu mỗi khi hàm
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
26 được gọi.

Tiếp theo,

Traceback (most recent call last):
  File "", line 1, in 
TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
6 được gọi để phiên âm bất kỳ bài phát biểu nào trong bản ghi. Một khối
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
40 được sử dụng để bắt các ngoại lệ
>>> harvard = sr.AudioFile('harvard.wav')
>>> with harvard as source:
...    audio = r.record(source)
...
6 và
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
23 và xử lý chúng cho phù hợp. Thành công của yêu cầu API, bất kỳ thông báo lỗi nào và bài phát biểu được sao chép được lưu trữ trong các khóa
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
43,
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
44 và
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
45 của từ điển
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
46, được trả về bởi hàm
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
26.

>>> r.recognize_google()
1

Bạn có thể kiểm tra chức năng

>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
26 bằng cách lưu tập lệnh trên vào một tệp có tên là Guessinging_game.py và chạy như sau trong phiên phiên dịch:

>>>

>>> r.recognize_google()
2

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

>>> r.recognize_google()
3

Tiếp theo, một thể hiện

Traceback (most recent call last):
  File "", line 1, in 
TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
0 và
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
05 được tạo và một từ ngẫu nhiên được chọn từ
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
51:

>>> r.recognize_google()
4

Sau khi in một số hướng dẫn và chờ 3 ba giây, vòng lặp

>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
52 được sử dụng để quản lý mỗi lần thử người dùng trong việc đoán từ đã chọn. Điều đầu tiên bên trong vòng lặp
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
52 là một vòng lặp
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
52 khác nhắc nhở người dùng nhiều nhất
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
55 lần để đoán, cố gắng nhận ra đầu vào mỗi lần với hàm
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
26 và lưu trữ từ điển được trả về biến cục bộ
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
57.

Nếu khóa

>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
32 của
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
57 không phải là
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
31, thì bài phát biểu của người dùng đã được phiên âm và vòng lặp bên trong bị chấm dứt với
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
61. Nếu bài phát biểu không được sao chép và khóa
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
29 được đặt thành
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
63, thì xảy ra lỗi API và vòng lặp lại bị chấm dứt với
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
61. Mặt khác, yêu cầu API đã thành công nhưng bài phát biểu không thể nhận ra. Người dùng được cảnh báo và lặp lại vòng lặp
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
52, cho người dùng một cơ hội khác trong nỗ lực hiện tại.

>>> r.recognize_google()
5

Khi vòng lặp

>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
52 bên trong chấm dứt, từ điển
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
57 được kiểm tra lỗi. Nếu bất kỳ xảy ra, thông báo lỗi được hiển thị và vòng lặp
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
52 bên ngoài bị chấm dứt với
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
61, sẽ kết thúc việc thực thi chương trình.

>>> r.recognize_google()
6

Nếu có bất kỳ lỗi nào, phiên âm được so sánh với từ được chọn ngẫu nhiên. Phương thức

>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
70 cho các đối tượng chuỗi được sử dụng để đảm bảo kết hợp tốt hơn về dự đoán với từ đã chọn. API có thể trả về bài phát biểu phù hợp với từ Apple Apple, vì Apple Apple, hoặc Apple Apple, và một trong hai câu trả lời nên được tính là một câu trả lời đúng.

Nếu đoán là chính xác, người dùng sẽ thắng và trò chơi bị chấm dứt. Nếu người dùng không chính xác và có bất kỳ nỗ lực nào còn lại, vòng lặp

>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
52 bên ngoài và một dự đoán mới sẽ được truy xuất. Nếu không, người dùng thua trò chơi.

>>> r.recognize_google()
7

Khi chạy, đầu ra sẽ trông giống như thế này:

>>> r.recognize_google()
8

Tóm tắt lại và các tài nguyên bổ sung

Trong hướng dẫn này, bạn đã thấy cách cài đặt Gói LessionRec nhận thức và sử dụng lớp

Traceback (most recent call last):
  File "", line 1, in 
TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
0 của nó để dễ dàng nhận ra bài phát biểu từ cả hai tệp sử dụng ____ ____ 66 và đầu vào micrô và sử dụng
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
74, bạn cũng thấy cách xử lý các phân đoạn của tệp âm thanh bằng cách sử dụng
>>> r.recognize_google(audio)
'the stale smell of old beer lingers it takes heat
to bring out the odor a cold dip restores health and
zest a salt pickle taste fine with ham tacos al
Pastore are my favorite a zestful food is the hot
cross bun'
3 và
>>> r.recognize_google(audio)
'the stale smell of old beer lingers it takes heat
to bring out the odor a cold dip restores health and
zest a salt pickle taste fine with ham tacos al
Pastore are my favorite a zestful food is the hot
cross bun'
4 Đối số từ khóa của phương thức
>>> type(audio)

6.

Bạn đã thấy nhiễu hiệu ứng có thể có về độ chính xác của phiên âm và đã học được cách điều chỉnh độ nhạy của phiên bản

Traceback (most recent call last):
  File "", line 1, in 
TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
0 đối với nhiễu xung quanh với
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
79 Bạn cũng đã học được trường hợp ngoại lệ nào Bài phát biểu không thể hiểu được và cách xử lý chúng với các khối
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
40.

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 làm trầy xước bề mặt. Nếu bạn quan tâm đến việc tìm hiểu thêm, đây là một số tài nguyên bổ sung.

Để biết thêm thông tin về gói phát biểu:

  • Tài liệu tham khảo thư viện
  • Ví dụ
  • Trang khắc phục sự cố

Một vài tài nguyên internet thú vị:

  • Đằng sau mic: Khoa học nói chuyện với máy tính. Một bộ phim ngắn về xử lý lời nói của Google.
  • Một quan điểm lịch sử về sự công nhận giọng nói của Huang, Baker và Reddy. Truyền thông của ACM (2014). Bài viết này cung cấp một cái nhìn sâu sắc 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ệ nhận dạng giọng nói của Clark Boyd tại startup. Bài đăng trên blog này trình bày 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.

Một số cuốn sách hay về nhận dạng giọng nói:

  • Giọng nói trong máy: Xây dựng máy tính hiểu lời nói, Pieraccini, MIT Press (2012). Một cuốn sách có khả năng kiểm soát chung có thể truy cập bao gồm 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 về 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à công cụ thiết kế một số nhà nhận dạng giọng nói thương mại đầu tiên. Cuốn sách này hiện đã hơn 20 tuổi, nhưng rất nhiều nguyên tắc cơ bản vẫn giữ nguyên.
  • Nhận dạng giọng nói tự động: Cách tiếp cận học tập sâu, Yu và Đặng, Springer (2014). Yu và Đặng là các 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ý lời nói. Cuốn sách này bao gồm rất nhiều cách tiếp cận hiện đại và nghiên cứu tiên tiến nhưng không dành cho những người yếu tim về mặt toán học.

Phụ lục: Nhận biết bài phát biểu bằng các ngôn ngữ khác ngoài tiếng Anh

Trong suốt hướng dẫn này, chúng tôi đã nhận ra bài phát biểu bằng tiếng Anh, đây là ngôn ngữ mặc định cho mỗi phương thức

>>> harvard = sr.AudioFile('harvard.wav')
>>> with harvard as source:
...    audio = r.record(source)
...
3 của gói phát biểu. Tuy nhiên, hoàn toàn có thể nhận ra lời nói trong các ngôn ngữ khác, và khá đơn giản để thực hiện.

Để nhận ra lời nói bằng một ngôn ngữ khác, hãy đặt đối số từ khóa

>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
85 của phương thức
>>> harvard = sr.AudioFile('harvard.wav')
>>> with harvard as source:
...    audio = r.record(source)
...
3 thành một chuỗi tương ứng với ngôn ngữ mong muốn. Hầu hết các phương pháp 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'
87 cho tiếng Anh Mỹ hoặc
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
88 cho tiếng Pháp. Ví dụ: sau đây nhận ra bài phát biểu tiếng Pháp trong tệp âm thanh:

>>> r.recognize_google()
9

Chỉ các phương thức sau chấp nhận đối số từ khóa

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

  • Traceback (most recent call last):
      File "", line 1, in 
    TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
    
    5
  • Traceback (most recent call last):
      File "", line 1, in 
    TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
    
    6
  • Traceback (most recent call last):
      File "", line 1, in 
    TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
    
    7
  • Traceback (most recent call last):
      File "", line 1, in 
    TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
    
    9
  • >>> harvard = sr.AudioFile('harvard.wav')
    >>> with harvard as source:
    ...    audio = r.record(source)
    ...
    
    0

Để tìm ra thẻ ngôn ngữ nào được API hỗ trợ bạn đang sử dụng, bạn sẽ phải tham khảo tài liệu tương ứng. Một danh sách các thẻ được chấp nhận bởi

Traceback (most recent call last):
  File "", line 1, in 
TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
6 có thể được tìm thấy trong câu trả lời tràn ngăn xếp này.

Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem cùng với hướng dẫn bằng văn bản để hiểu sâu hơn về sự hiểu biết của bạn: Nhận dạng giọng nói với Python This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Speech Recognition With Python

Làm cách nào để kích hoạt giọng nói trong Python?

Python cung cấp một API có tên là Ghi nhận nhận thức để cho phép chúng tôi chuyển đổi âm thanh thành văn bản để xử lý thêm ...
PyTTSX3:- Mô-đun này được sử dụng để chuyển đổi văn bản thành bài phát biểu trong một chương trình nó hoạt động ngoại tuyến.....
Tkinter:- Mô-đun này được sử dụng để xây dựng GUI và được xây dựng với Python ..

Làm thế nào để tôi có được Python để nhận ra giọng nói của tôi?

Hướng dẫn cuối cùng để nhận dạng giọng nói với Python..
Cài đặt Pyaudio ..
Lớp micrô ..
Sử dụng Listen () để thu thập đầu vào micrô ..
Xử lý bài phát biểu không thể nhận ra ..

Làm cách nào để phiên âm âm thanh thành văn bản trong Python?

Phiên âm các bản ghi âm vào các văn bản được thực hiện trong Python bằng cách sử dụng thư viện nhận thức có sẵn trong Python.Nhận dạng giọng nói đề cập đến khả năng của phần mềm máy tính giúp xác định các từ và cụm từ trong ngôn ngữ nói và sau đó chuyển đổi chúng thành định dạng văn bản có thể đọc được của con người.using the SpeechRecognition library available in Python. Speech recognition refers to the ability of computer software which helps in identifying words and phrases in the spoken language and then converts them into humanly readable textual format.