Nối các tập tin âm thanh python

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? . Nó dễ dàng hơn bạn nghĩ

Không còn là lỗi thứ nhất, 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 đã chứng minh rằng hỗ trợ giọng nói ở mức độ nào đó sẽ là một khía cạnh thiết yếu của công nghệ gia dụng . Nếu bạn nghĩ về nó, lý do tại sao là rõ ràng. Kết hợp tính năng 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ệ nào có thể so sánh được

Chỉ riêng các cải tiến về khả năng tiếp cận cũng đáng được xem xét Nhận dạng âm thanh nói cho phép người già và người trưởng thành 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

Hơ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 hiểu cách thực hiện. You will learn

  • Cách thức hoạt động của tính năng nhận dạng giọng nói,
  • 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ì bạn đã học được vào trò chơi “Đoán từ” đơn giản và xem tất cả kết hợp với nhau như thế nào

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

Trước khi chúng ta đi đến thực tế của việc thực hiện nhận dạng giọng nói bằng 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ẽ bao gồm đầ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 đề, vui lòng bỏ qua

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 chỉ giới hạn ở một người nói duy nhất và có lượng từ vựng giới hạn khoảng một số lượng từ. Các hệ thống nhận dạng giọng nói hiện đại đã có một làn gió dài kể từ những hệ thống cổ xưa của họ. Họ có thể nhận dạng bài phát biểu từ nhiều người nói và có vốn từ vựng và nhiều ngôn ngữ

Tất nhiên, thành phần đầu tiên của nhận dạng giọng nói là giọng 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 nơ, sau đó sang dữ liệu kỹ thuật số bằng bộ chuyển đổi tương tự sang kỹ thuật số. Sau khi được số hóa, một số mô hình có thể được sử dụng để chuyển â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 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 âm thanh nói, khi được xem trong một khoảng thời gian đủ ngắn [ví dụ, mười mili giây], có thể gần đúng một cách hợp lý như một quá trình tĩnh —

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

Để giải mã lời nói thành văn bản, các nhóm màn hình được đối chiếu với một hoặc nhiều âm vị —một đơn vị cơ bản của lời nói. Việc tính toán này yêu cầu phải được đào tạo, vì âm thanh của một vị trí â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. Một thuật toán đặc biệt sau đó được áp dụng để xác định từ [hoặc các từ] có nhiều khả năng nhất để tạo ra chuỗi âm thanh định vị nhất

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 tín hiệu nói hiện đại, mạng nơ-ron được sử dụng để đơn giản hóa tín hiệu nói giọng bằng cách sử dụng các kỹ thuật chuyển đổi đặc trưng và kích thước trước khi giảm định dạng HMM. Bộ 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 bao gồm giọng nói. Điều này ngăn bộ nhận dạng mất 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 cần phải lo lắng về bất kỳ điều gì trong số này. Một số dịch vụ nhận định dạng giọng nói có sẵn để sử dụng API thông tin trực tuyến và nhiều dịch vụ trong số này cung cấp SDK Python

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

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

  • apiai
  • lắp ráp
  • google-cloud-speech
  • nhân viên bỏ túi
  • Nhận định dạng giọng nói
  • watson-nhà phát triển-đám mây
  • tip

Một số gói này — chẳng hạn như wit và apiai — cung cấp các tính năng hợp nhất vượt trội, như lý do ngôn ngữ tự nhiên để xác định ý định của người nói, xử lý ra bên ngoài 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 chuyển giọng nói thành văn bản

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

Nhận dạng giọng nói yêu cầu đầu vào âm thanh và SpeechRecognition 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 ẩn và xử lý các tập tin âm thanh từ đầu, SpeechRecognition sẽ giúp bạn thiết lập và chạy chỉ 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à làm điều đó cực kỳ linh hoạt. Một trong số này — API Web Speech của Google — Hỗ trợ khóa API mặc định được mã hóa phần 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 bất kỳ dự án Python nào. Tuy nhiên, không đảm bảo hỗ trợ cho mọi tính năng của mỗi API mà nó kết thúc. 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 liệu SpeechRecognition 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 đã thuyết phục rằng bạn nên thử SpeechRecognition, 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+, but request a number. Đối với hướng dẫn này, tôi sẽ giả sử bạn đang sử dụng Python 3. 3+

Bạn có thể cài đặt SpeechRecognition từ một thiết bị đầu cuối bằng pip

$ pip install SpeechRecognition

Sau khi cài đặt, bạn phải xác minh cài đặt bằng cách mở phiên bản dịch và nhập

>>>

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

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

Please continue and keep for this open version. Bạn sẽ bắt đầu làm việc với nó chỉ trong vài giây

SpeechRecognition sẽ hoạt động hiệu quả nếu tất cả những gì bạn cần làm đều hoạt động với các tệp âm thanh hiện có. Tuy nhiên, các trường hợp cụ thể sử dụng có thể yêu cầu một số phụ thuộc. Đáng chú ý, gói PyAudio là thiết bị cần thiết để bắt đầu nhập vào chương trình

Bạn sẽ thấy những phụ thuộc 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 "", line 1, in 
TypeError: recognize_google[] missing 1 required positional argument: 'audio_data'
1Lớp

Tất cả điều kỳ diệu trong SpeechRecognition xảy ra với 

Traceback [most recent call last]:
  File "", line 1, in 
TypeError: recognize_google[] missing 1 required positional argument: 'audio_data'
1 lớp học

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

Traceback [most recent call last]:
  File "", line 1, in 
TypeError: recognize_google[] missing 1 required positional argument: 'audio_data'
1phiên bản 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 định dạng giọng nói từ nguồn âm thanh

Tạo 

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

>>>

>>> r = sr.Recognizer[]

Mỗi 

Traceback [most recent call last]:
  File "", line 1, in 
TypeError: recognize_google[] missing 1 required positional argument: 'audio_data'
1phiên bản có bảy phương pháp để nhận dạng giọng nói từ nguồn âm thanh bằng cách sử dụng các API khác nhau. Which is

  • Traceback [most recent call last]:
      File "", line 1, in 
    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 "", line 1, in 
    TypeError: recognize_google[] missing 1 required positional argument: 'audio_data'
    
    7. API voice speak 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'
    
    8. Google Cloud Speech - 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'
    
    9. Houndify bởi SoundHound
  • >>> harvard = sr.AudioFile['harvard.wav']
    >>> with harvard as source:
    ..    audio = r.record[source]
    ...
    
    0. Bài phát biểu thành văn bản của IBM
  • >>> harvard = sr.AudioFile['harvard.wav']
    >>> with harvard as source:
    ..    audio = r.record[source]
    ...
    
    1. CMU Sphinx - yêu cầu cài đặt PocketSphinx
  • >>> harvard = sr.AudioFile['harvard.wav']
    >>> with harvard as source:
    ..    audio = r.record[source]
    ...
    
    2. Mưu mẹo. ai

Trong số bảy, chỉ 

>>> harvard = sr.AudioFile['harvard.wav']
>>> with harvard as source:
..    audio = r.record[source]
...
1 hoạt động ngoại tuyến với công cụ CMU Sphinx. Sau cái còn lại đều yêu cầu kết nối internet

Thảo luận thảo luận đầy đủ về các tính năng và lợi ích của mỗi API nằm ngoài phạm vi của hướng dẫn này. Vì SpeechRecognition đi kèm với API khóa mặc định cho Google Web Speech API, 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. API API khác đều yêu cầu xác thực bằng API khóa 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 tham khảo tài liệu SpeechRecognition

thận trọng. Key default 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 phải là một ý kiến ​​hay khi sử dụng Google Web Speech API trong quá trình sản xuất. Ngay cả khi API khóa 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 gần giống như các màn hình khác nhau cho mỗi API, vì vậy những gì bạn học hôm nay sẽ dễ dàng chuyển sang một dự án trong thế giới thực

Mỗi 

>>> harvard = sr.AudioFile['harvard.wav']
>>> with harvard as source:
..    audio = r.record[source]
...
4 phương thức sẽ đưa ra một 
>>> harvard = sr.AudioFile['harvard.wav']
>>> with harvard as source:
..    audio = r.record[source]
...
5 ngoại lệ nếu không thể truy cập được API. Đối với 
>>> harvard = sr.AudioFile['harvard.wav']
>>> with harvard as source:
..    audio = r.record[source]
...
1, điều này có thể xảy ra do cài đặt Sphinx bị thiếu, bị hỏng hoặc không tương thích. Đối với sáu phương pháp khác, 
>>> harvard = sr.AudioFile['harvard.wav']
>>> with harvard as source:
..    audio = r.record[source]
...
7có thể bị ném nếu trả lời ứng dụng giới hạn hạn chế, máy chủ không khả dụng hoặc không có kết nối internet

Ok, đủ chuyện. Hãy làm sạch bàn tay của chúng ta. Hãy tiếp tục và cố gắng gọi 

Traceback [most recent call last]:
  File "", line 1, in 
TypeError: recognize_google[] missing 1 required positional argument: 'audio_data'
7trong phiên bản thông tin viên của bạn

>>>

>>> r.recognize_google[]

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

Bạn có thể nhận được một cái gì đó giống như sau

Traceback [most recent call last]:
  File "", line 1, in 
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 có thể nhận thứ gì đó từ hư hỏng

Tất cả bảy 

>>> harvard = sr.AudioFile['harvard.wav']
>>> with harvard as source:
..    audio = r.record[source]
...
4 phương thức của 
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: recognize_google[] missing 1 required positional argument: 'audio_data'
1 lớp đều yêu cầu một 
>>> type[audio]

1đối số. Trong mỗi trường hợp, 
>>> type[audio]

1 must be a version of 
>>> type[audio]

3 layer SpeechRecognition

Có hai cách để tạo 

>>> type[audio]

3phiên bản. from file sound or sound bar was write by lú. Các tệp âm thanh dễ bắt đầu hơn một chút, vì vậy trước tiên hãy xem xét nó

Work with audio file

Trước khi tiếp tục, bạn phải tải xuống tệp âm thanh. Bạn có thể tìm thấy cái mà tôi đã sử dụng để bắt đầu, “harvard. wav” tại đây. Đảm bảo bạn lưu nó vào cùng một thư mục mà phiên bả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 một cách dễ dàng nhờ 

>>> type[audio]

5 layer tiện ích của nó. 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. must in PCM/LPCM format
  • AIFF
  • AIFF-C
  • FLAC. must be format 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 sự cố. Trên các nền tảng khác nhau, bạn phải cài đặt bộ mã hóa FLAC và đảm bảo rằng bạn có quyền truy cập vào 

>>> type[audio]

6 dòng lệnh công cụ. Bạn có thể tìm thêm thông tin tại đây nếu điều này áp dụng cho bạn

Sử dụng 
>>> type[audio]

7 để chụp dữ liệu từ tệp

Nhập thông tin sau vào phiên bản thông tin dịch vụ của bạn để xử lý nội dung của tệp “harvard. sóng”

>>>

>>> harvard = sr.AudioFile['harvard.wav']
>>> with harvard as source:
..    audio = r.record[source]
...

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

>>> type[audio]

5có thể được gọi là 
>>> type[audio]

9Sau đó, 
>>> type[audio]

7 công thức ghi dữ liệu từ toàn bộ tệp vào một 
>>> type[audio]

3 có thể hiện. 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'
2

>>>

>>> type[audio]

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'
7 để cố gắng tiếp nhận bất kỳ lời nói 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 xem kết quả

>>>

>>> 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'

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 hỏi tự các cụm từ trong tệp “harvard. wav” đến từ đâu, chúng là ví dụ về 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 quá trình kiểm tra giọng nói của các đường dây điện thoại. Chúng vẫn được sử dụng trong VoIP và thử nghiệm di động ngày nay

Harvard Questions 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 âm có sẵn miễn phí của các cụm từ này trên trang web của Open Speech Repository. Bản ghi âm có sẵn bằng tiếng Anh, tiếng Quan Thoại, 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

Chụp 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'
4và
>>> 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'
5

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

Ví dụ. section after write back any cards play in the first seconds of the file

>>>

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

Các 

>>> type[audio]

7 phương pháp, khi được sử dụng bên trong một 
>>> 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'
9khối, luôn luôn di chuyển về phía trước trong dòng tệp. Điều này có nghĩa là nếu bạn ghi một lần trong bốn giây và sau đó ghi lại trong bốn giây, thì lần thứ hai trả về bốn giây âm thanh sau bốn giây đầu tiên

>>>

>>> 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'

Lưu ý rằng 

>>> with harvard as source:
..     audio = r.record[source, duration=4]
...
>>> r.recognize_google[audio]
'the stale smell of old beer lingers'
0có chứa một phần của cụm từ thứ ba trong tệp. Khi chỉ định thời lượng, bản ghi có thể dừng ở giữa các 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 phiên bản âm thanh. Nhiều hơn về điều này trong một chút

Ngoài việc chỉ định thời lượng ghi, 

>>> type[audio]

7 phương thức có thể được cung cấp một điểm bắt đầu cụ thể 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'
4đối số từ khóa. Giá trị này đại diện cho số giây từ đầu tệp cần bỏ qua trước khi bắt đầu ghi

Để chỉ ghi lại cụm từ thứ hai trong tệp, bạn có thể bắt đầu với khoảng cách chênh lệch là các giây và ghi lại, thật giới hạn, ba giây

>>>

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

Các đối số 

>>> 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'
4và 
>>> 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'
5từ khóa hữu ích cho việc phân đoạn tệp âm thanh nếu bạn có kiến ​​thức trước về cấu trúc của bài phát trong biểu tệp. Tuy nhiên, việc sử dụng chúng theo một cách vàng có thể dẫn đến phiên bản âm thanh kém. Để xem hiệu ứng này, hãy thử các thao tác sau trong thông tin giao dịch của bạn

>>>

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

Khi bắt đầu ghi ở 4,7 giây, bạn bỏ lỡ phần “it t” ở đầu cụm từ “cần nhiệt để tạo ra mùi”, vì vậy API chỉ nhận được “akes heat”, nó khớp với “Mesquite. ”

Tương tự, ở đoạn cuối ghi âm, bạn bắt được “a co”, là phần mở đầu của cụm từ thứ ba “ngâm mình trong nước lạnh phục sức khỏe và mê say”. Đ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ụ về 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ý các tệp âm thanh trước đó, bạn không thể mong đợi âm thanh không bị nhiễu

Ảnh hưởng của tiếng ồn đối với 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 âm đều có tiếng ồn ở một mức độ nào đó 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 việc nhận dạng giọng nói như thế nào, 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 của phiên thông dịch viên của bạn

Tệp này có cụm từ “mùi hôi của bia cũ còn sót lại” được nói với một lời nói khoan dung lớn ở phía sau

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

>>>

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

Tắt đường

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 gần hơn một chút với cụm từ thực tế, nhưng nó vẫn chưa hoàn hảo. Ngoài ra, “the” bị thiếu ở đầu cụm từ. in sao vậy?

Các 

>>> with harvard as source:
..     audio = r.record[source, duration=4]
...
>>> r.recognize_google[audio]
'the stale smell of old beer lingers'
5 phương pháp đọc thứ hai đầu tiên của dòng tệp và hiệu chỉnh bộ nhận định dạng cho độ ồn của âm thanh. Do đó, phần đó của luồng được sử dụng trước khi bạn gọi 
>>> type[audio]

7 để thu thập dữ liệu

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

>>> with harvard as source:
..     audio = r.record[source, duration=4]
...
>>> r.recognize_google[audio]
'the stale smell of old beer lingers'
5 sử dụng để phân tích 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'
5đối số từ khóa. This number nhận một 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ụ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 nhiễu — tín hiệu quá ồn để xử lý thành công. Đó là trường hợp của tệp này

Nếu bạn thường gặp phải những vấn đề này, bạn có thể sử dụng đến một số 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 mức độ 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 API phản hồi thực tế. Hầu hết các API trả về một chuỗi JSON chứa nhiều phiên bản âm thanh có thể có. Các 

Traceback [most recent call last]:
  File "", line 1, in 
TypeError: recognize_google[] missing 1 required positional argument: 'audio_data'
7 phương pháp sẽ luôn trả lại rất có thể sao chép, trừ khi bạn buộc phải cung cấp cho bạn những câu trả lời đầy đủ

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

>>> 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'
2đối số từ khóa của 
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: recognize_google[] missing 1 required positional argument: 'audio_data'
7 phương pháp 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'
4

>>>

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

Nếu 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'
7trả về một từ điển với 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'
6trỏ vào danh sách các bảng điểm có thể có. 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 để giải quyết lỗi

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 SpeechRecognition. Bạn đã tìm ra cách tạo một phiên bản 

>>> type[audio]

5 từ tệp âm thanh và sử dụng 
>>> type[audio]

7 phương pháp này để 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ố 
>>> 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'
4và 
>>> 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'
5từ khóa của 
>>> type[audio]

7, và bạn đã gặp phải ảnh hưởng bất lợi về độ chính xác của bản sao

Bây giờ cho thú vị phần. Please convert from the audio version of the audio audio to working for your project to become your future Nên tương tác bằng cách nhận đầu vào từ gật

Làm việc với trống

Để truy cập cuộc gọi của bạn bằng SpeechRecognizer, bạn phải cài đặt gói PyAudio. Vui lòng tiếp tục và đóng phiên bản dịch hiện tại của bạn, và hãy 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ể 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 đặt PortAudio với Homebrew, sau đó 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'
7

các 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 xong 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

Bảo đảm rằng mặc định của bạn được bật và tắt tiếng. Nếu quá trình cài đặt hoạt động, bạn sẽ thấy một cái gì đó giống như sau

 

>>> r = sr.Recognizer[]
0

Hãy tiếp tục và thử trải nghiệm nó một chút bằng cách nói chuyện với bạn và xem SpeechRecognition phiên bản âm thanh bài phát biểu của bạn tốt như thế nào

 

Lưu ý. Nếu bạn đang sử dụng Ubuntu và nhận được một số đầu thú vị như 'ALSA lib.. PCM không xác định', hãy tham khảo  để biết các mẹo về cách ngăn chặn các thông báo này. Đầu tiên điều này đến từ gói ALSA được cài đặt với Ubuntu — không phải SpeechRecognition hoặc PyAudio. Trên thực tế, những thông báo này có thể chỉ ảnh hưởng đến 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 của mã của bạn. Họ hầu hết là một mối tình

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

Mở một phiên bản thông tin khác và tạo một phiên bản của lớp nhận định 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 mô hình hệ thống mặc định. Bạn có thể truy cập điều này bằng cách tạo ra một thể hiện của 

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

>>>

>>> r = sr.Recognizer[]
2

Nếu hệ thống của bạn không có giấc ngủ mặc định [bất định như trên Raspberry Pi ] hoặc bạn muốn sử dụng giấc ngủ khác với giấc ngủ mặc định, thì bạn sẽ cần chỉ có giấc mơ sẽ sử dụng bằng cách cung cấp chỉ mục thiết bị. Bạn có thể lấy danh sách tên nương tựa bằng cách gọi 

>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
08 thức tĩnh của 
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
06 layer

>>>

>>> r = sr.Recognizer[]
3

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

Chỉ mục thiết bị của nương tựa chỉ là mục tên của nương tựa trong danh sách được trả lại 

>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
10Ví dụ. với đầu ra ở trên, nếu bạn muốn sử dụng nương tựa có tên “phía trước”, chỉ có số 3 trong danh sách, bạn sẽ tạo ra ví dụ như thế này

>>>

>>> r = sr.Recognizer[]
4

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

Sử dụng 
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
11 để chụp đầu vào rãnh

Bây giờ bạn đã có một 

>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
06phiên bản sẵn sàng để sử dụng, đã đến lúc nắm bắt một số thông tin đầu vào

Cũng giống như 

>>> type[audio]

5 lớp học, 
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
06là một trình quản lý ngữ cảnh. Bạn có thể nắm bắt đầu từ gật gù bằng cách sử dụng 
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
11 công thức của 
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: recognize_google[] missing 1 required positional argument: 'audio_data'
1 lớp bên trong 
>>> 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'
9khối. Phương thức này lấy một nguồn âm thanh làm đối số đầu tiên của nó và ghi lại từ các nguồn cho đến khi phát hiện ra sự im lặng.

>>>

>>> r = sr.Recognizer[]
5

Sau khi bạn thực hiện 

>>> 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'
9khối, hãy thử nói “xin chào” vào khoảng trống của bạn. Chờ một chút để nhắc nhở thông tin thành viên hiển thị lại. Khi lời nhắc “>>>” Trả về, bạn đã sẵn sàng nhận dạng bài phát biểu

>>>

>>> r = sr.Recognizer[]
6

Nếu lời nhắc nhở không bao giờ quay trở lại, rất có thể là bạn đang nhận ra quá nhiều tiếng ồn ào xung quanh. Bạn có thể làm gián đoạn quá trình bằng + ctrl + c ++ để lấy lại lời nhắc

Để xử lý tiếng ồn xung quanh, bạn cần sử dụng 

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

>>>

>>> r = sr.Recognizer[]
7

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

>>> with harvard as source:
..     audio = r.record[source, duration=4]
...
>>> r.recognize_google[audio]
'the stale smell of old beer lingers'
5 để thực hiện công việc của nó, sau đó thử nói “xin chào” vào trống. 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 bài phát biểu

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'
5phâ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, vui lòng điều chỉnh điều này bằ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'
5đối số từ khóa

Tài liệu SpeechRecognition khuyến mãi thời lượng sử dụ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 là một giây tạo ra kết quả tốt hơn. Giá trị tối thiểu bạn cần tùy thuộc vào môi trường xung đột của khu rừng. 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ý giọng nói không thể nhận định dạng

Hãy thử nhập ví dụ mã trước đó vào bộ ngắt âm thanh và tạo ra một số tiếng ồn khó hiểu vào khu nghỉ dưỡng. Bạn sẽ nhận được một cái gì đó như thế này để phản hồi

>>> r = sr.Recognizer[]
8

Âm thanh mà API không thể khớp với văn bản sẽ tạo ra một 

>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
24 ngoại lệ. Bạn nên luôn đóng gói các lệnh gọi tới API bằng 
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
25và 
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
26các khối để xử lý ngoại lệ này

Lưu ý. You could have to try more than expected to have a exception. API hoạt động rất chăm chỉ để phiên bản bất kỳ âm thanh nào. Ngay cả những tiếng càu nhàu ngắn cũng được phiên âm thành những từ như "làm thế nào" đối với tôi. Ho, tiếng trống tay và tiếng trống sẽ liên tục làm tăng ngoại lệ

Kết hợp tất cả lại với nhau. Trò chơi “Đoán từ”

Bây giờ bạn đã thấy những 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 kiến ​​thức mới học của bạn và viết một trò chơi nhỏ chọn ngẫu nhiên từ danh sách và cho người dùng

Đâ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 

>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
27chức năng phải mất một 
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: recognize_google[] missing 1 required positional argument: 'audio_data'
1và 
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
06ví dụ như các đối số và trả về một cuốn từ điển với ba phím. The first key 
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
30, is a boolean for know API request has Successful or not. Chìa khóa thứ hai 
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
31, là 
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
32hoặc một thông báo lỗi cho biết rằng API không khả dụng hoặc giọng nói không thể hiểu được. Cuối cùng, 
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
33phím bao gồm phần phiên âm của thanh âm được viết bởi nương

Trước tiên, hàm sẽ kiểm tra xem các đối số 

>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
34và 
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
35đối số phải là loại chính xác hay không và tăng một 
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
36 nếu một trong hai không hợp lệ

>>> r.recognize_google[]
0

Sau đó, 

>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
11 phương pháp được sử dụng để ghi lại đầu vào nơm nớp

>>> r.recognize_google[]
1

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'
5 được sử dụng để hiệu chỉnh định dạng nhận cho công việc thay đổi điều kiện tiếng ồn 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 "", line 1, in 
TypeError: recognize_google[] missing 1 required positional argument: 'audio_data'
7được gọi để phiên âm 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 
>>> harvard = sr.AudioFile['harvard.wav']
>>> with harvard as source:
..    audio = r.record[source]
...
7và 
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
24 ngoại lệ và xử lý cho phù hợp. Sự thành công của các yêu cầu API, bất kỳ thông báo lỗi và bài phát biểu sao chép đã đượ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ừ điển, mà sẽ được trả về bởi các 
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
27chức năng

>>> r.recognize_google[]
2

Bạn có thể kiểm tra 

>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
27chức năng bằng cách lưu lệnh trên tệp vào tệp có tên “đoáning_game. py” và chạy phần sau trong một phiên dịch

>>>

>>> r.recognize_google[]
3

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 công bố

>>> r.recognize_google[]
4

Tiếp theo, một 

Traceback [most recent call last]:
  File "", line 1, in 
TypeError: recognize_google[] missing 1 required positional argument: 'audio_data'
1và 
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
06có thể được tạo ra và một từ ngẫu nhiên được chọn từ 
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
52

>>> r.recognize_google[]
5

Sau khi theo một số hướng dẫn và chờ đợi trong 3 giây, một 

>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
53 vòng lặp được sử dụng để quản lý từng nỗ lực dự đoán từ người dùng đã chọn. Điều kiện đầu tiên bên trong 
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
53 Vòng lặp là một 
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
53 Vòng lặp khác nhắc người dùng 
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
56đoán nhiều lần nhất , cố gắng nhận định dạng đầu vào mỗi lần bằng 
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
27hàm và lưu trữ từ điển trả về các biến cục bộ 
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
58

Nếu 

>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
33 khóa của 
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
58không phải 
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
32, thì bài phát biểu của người dùng là phiên âm và vòng lặp bên trong được 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 bản âm thanh và 
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
30 lock được đặt thành 
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
64, thì API lỗi đã xảy ra và vòng lặp lại kết thúc với 
>>> 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 định dạng được nói. Người dùng bị cảnh báo và 
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
53 vòng lặp lặp lại, cho người dùng một cơ hội khác ở lần thử hiện tại

>>> r.recognize_google[]
6

Khi _______1_______53 vòng bên trong kết thúc, 

>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
58từ điểm sẽ bị kiểm tra lỗi. Nếu có bất kỳ điều gì xảy ra, thông báo lỗi sẽ được hiển thị và 
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
53 Vòng lặp bên ngoài được 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 hiện chương trình này

>>> r.recognize_google[]
7

Nếu không có bất kỳ lỗi nào, phiên 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'
71 phương pháp cho chuỗi đối tượng được sử dụng để đảm bảo phù hợp hơn về dự đoán từ lựa chọn. API có thể trả lời lời nói khớp với từ “apple” là “Apple” hoặc “apple” và một trong hai câu trả lời sẽ được tính là một câu trả lời đúng

Nếu đoán đúng, người dùng sẽ 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ẽ lặp lại và một dự đoán mới được truy xuất. Nếu không, người dùng sẽ mất trò chơi

>>> r.recognize_google[]
8

Khi chạy, đầu ra sẽ giống như sau

>>> r.recognize_google[]
9

Tóm tắt và bổ sung tài nguyên

Trong hướng dẫn này, bạn đã biết cách cài đặt gói SpeechRecognition và sử dụng 

Traceback [most recent call last]:
  File "", line 1, in 
TypeError: recognize_google[] missing 1 required positional argument: 'audio_data'
1 lớp của nó để dễ dàng nhận dạng giọng nói từ cả tệp — bằng cách sử dụng 
>>> type[audio]

7—và đầu vào mũ bảo hiểm — 
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
75 bằng cách sử dụng các đối số từ khóa

Bạn đã thấy ảnh hưởng của tiếng ồn có thể đối lập với độ chính xác của các phiên bản âm thanh và đã học cách điều chỉnh 

Traceback [most recent call last]:
  File "", line 1, in 
TypeError: recognize_google[] missing 1 required positional argument: 'audio_data'
1 độ nhạy của một phiên bản đối lập 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 
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: recognize_google[] missing 1 required positional argument: 'audio_data'
1phiên bản có thể gây ra— 
>>> harvard = sr.AudioFile['harvard.wav']
>>> with harvard as source:
..    audio = r.record[source]
...
7 đối với việc các yêu cầu API không hợp lệ và 
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
83đối với giọng nói khó hiểu — và cách xử lý những điều này với 
>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
41các khối

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

Phần thưởng miễn phí. mà bạn có thể sử dụng cơ sở cho các ứng dụng nhận dạng giọng nói của riêng mình

To know more information about packet SpeechRecognition

  • Thư viện tham khảo
  • Các ví dụ

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

  • Phía sau trống. Khoa học nói chuyện với máy tính. Một đoạn phim ngắn về xử lý giọng nói của Google
  • Quan điểm lịch sử về nhận dạng 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 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 The Startup. Bài đăng trên blog này trình bày 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ố sách hoặc về nhận định dạng giọng nói

  • Voice in the host. Xây dựng máy tính nghe nói , Pieraccini, MIT Press [2012]. Một cuốn sách dành cho các đối tượng phổ biến có thể truy cập thông tin được bao gồm cả lịch sử cũng như những tiến bộ hiện đại trong xử lý giọng nói
  • Các 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à người có công trong việc thiết kế một số công cụ nhận dạng nghe nói khả thi về mặt thương mại đầu tiên. Cuốn sách này đã hơn 20 tuổi, nhưng rất nhiều nguyên tắc cơ bản vẫn được giữ nguyên
  • Nhận định dạng giọng nói tự động. Phương pháp tiếp cận học tập sâu, Yu và Deng, Springer [2014]. Yu và Deng là những 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 rất nhiều phương pháp tiếp cậ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ề toán học

Lục phụ. Nhận dạng giọng nói 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 dạng giọng nói bằng tiếng Anh, là ngôn ngữ mặc định cho mỗi 

>>> harvard = sr.AudioFile['harvard.wav']
>>> with harvard as source:
..    audio = r.record[source]
...
4 phương pháp của gói SpeechRecognition. Tuy nhiên, bạn hoàn toàn có thể nhận dạng giọng nói bằng các ngôn ngữ khác và khá đơn giản để thực hiện

Để nhận dạng giọng nói bằng một ngôn ngữ khác, hãy đặt 

>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
86Đối số từ khóa của 
>>> harvard = sr.AudioFile['harvard.wav']
>>> with harvard as source:
..    audio = r.record[source]
...
4 phương thức 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 đề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ụ. phần sau nhận định dạng nói tiếng Pháp trong tệp âm thanh

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

Chỉ các phương thức sau khi chấp nhận 

>>> import speech_recognition as sr
>>> sr.__version__
'3.8.1'
86đối số từ khóa

  • 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'
    
    8
  • >>> harvard = sr.AudioFile['harvard.wav']
    >>> with harvard as source:
    ..    audio = r.record[source]
    ...
    
    0
  • >>> harvard = sr.AudioFile['harvard.wav']
    >>> with harvard as source:
    ..    audio = r.record[source]
    ...
    
    1

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

Traceback [most recent call last]:
  File "", line 1, in 
TypeError: recognize_google[] missing 1 required positional argument: 'audio_data'
7có thể tìm thấy danh sách các thẻ được chấp nhận trong câu trả lời Stack Overflow này

Chủ Đề