Phát trực tiếp âm thanh python

Stack Overflow cho các nhóm - Bắt đầu hợp tác và chia sẻ kiến ​​thức tổ chức. Tạo một đội miễn phí tại sao các đội? . – Bắt đầu cộng tác và chia sẻ kiến ​​thức tổ chức

Phát trực tiếp âm thanh python

Tạo một nhóm miễn phí Tại sao lại là các nhóm?
  • đội

  • Stack Overflow cho các nhóm - Bắt đầu hợp tác và chia sẻ kiến ​​thức tổ chức. Tạo một đội miễn phí tại sao các đội?

  • Tạo một nhóm miễn phí Tại sao lại là các nhóm?

    Stack Overflow cho các nhóm - Bắt đầu hợp tác và chia sẻ kiến ​​thức tổ chức. Tạo một đội miễn phí tại sao các đội?

    Tạo nhóm miễn phí

    File can™ on Stack Overflow

    Tìm kiếm nội dung tập trung, đáng tin cậy và hợp tác xung quanh các công nghệ bạn sử dụng nhiều nhất. 3 ​​ngày trước

    Tìm hiểu thêm về tập tin có thể 3 ​​ngày trước

    Hỏi câu hỏi 3 ngày trước 41 lần

    -1

    Đã hỏi 3 ngày trước 3 ngày trước
    đây là mã của tôi my-own-soundboard. git

    Sửa đổi 3 ngày trước 41 lần Cáp âm thanh ảo không miễn phí nếu tôi muốn thêm đầu vào.
    thì tôi muốn tạo một cái gì đó như Virtual Audio Cable.
    vui lòng cho tôi biết những gì tôi cần biết để thực hiện điều đó.

    Đã xem 41 lần đây là mã của tôi my-own-soundboard. git

    • Tôi đang cố gắng tạo soundboard của riêng mình trên Python. Đây là mã của tôiCáp âm thanh ảo, nó không miễn phí nếu tôi muốn có thêm đầu vào. sau đó tôi muốn tạo một cái gì đó như Cáp âm thanh ảo. xin vui lòng cho tôi biết những gì tôi cần biết để làm điều đó
    • Nhưng tôi có một số vấn đề. Đó là cáp âm thanh ảo miễn phí nếu tôi muốn có nhiều đầu vào hơn. Sau đó, tôi muốn làm một cái gì đó giống như cáp âm thanh ảo. Xin vui lòng cho tôi biết những gì tôi cần biết để làm điều đó
    • *Xin lỗi vì tiếng Anh của tôi không tốt
    • phát thanh
    • con trăn

    các cửa sổ Ngày 3 tháng 10 lúc 16. 44

    âm thanh

    Đa phương tiện 3 tháng 10 lúc 16. 44 3 tháng 10 lúc 16. 43

    Đã chỉnh sửa ngày 3 tháng 10 lúc 16. 44 mèo trắng

    whitecat3 tháng 10 lúc 16. 431 huy hiệu đồng

    Đã hỏi ngày 3 tháng 10 lúc 16. 43mèo trắng

    huy hiệu đồng whitecatwhitecat1

    3

    • 11 Huy Hiệu Đồng

      The new close the new

      Whitecat là một đóng góp mới cho trang web này. Hãy quan tâm đến việc làm rõ yêu cầu, bình luận và trả lời. Kiểm tra mã xử lý của chúng tôi

    • Trước khi cố gắng tự làm, có bất kỳ lựa chọn thay thế nguồn mở nào mà bạn có thể sử dụng không?

      Ngày 3 tháng 10 lúc 16. 49

    • Tôi cho rằng bạn không thể sử dụng Python cho công việc này. Nếu may mắn, bạn không phải viết một tài xế. Và bạn muốn chiến đấu với drm

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

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

      Chỉ riêng các cải tiến về khả năng truy cập cũng đáng xem xét. Tính năng nhận dạng giọng nói cho phép người già, người khiếm thị và thể chất 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 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. Bạn sẽ học

      • Cách 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ì đã học vào trò chơi “Đoán từ” đơn giản và xem mọi thứ kết hợp với nhau như thế nào

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

      Cách thức 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 sâu vào việc thực hiện nhận dạng giọng nói trong Python, hãy dành một chút thời gian để nói về cách hoạt động của nhận dạng giọng nói. Một cuộc thảo luận đầy đủ sẽ lấp đầy một cuốn sách, vì vậy tôi sẽ không làm bạn nhàm chán với 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ì cứ thoải mái 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 và có lượng từ vựng giới hạn 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ổ đại của chúng. Họ có thể nhận ra lời nói từ nhiều người nói và có vốn từ vựng khổng lồ trong 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ý thành tín hiệu điện bằng micrô, sau đó thành 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 đều dựa trên cái được gọi là Mô hình Markov ẩn (HMM). Cách tiếp cận này hoạt động dựa trên giả định rằng tín hiệu giọng nói, khi được xem trong khoảng thời gian đủ ngắn (ví dụ: mười mili giây), có thể được ước lượng một cách hợp lý dưới dạng một quá trình cố định—tức là một quá trình trong đó các thuộc tính thống kê không thay đổi theo thời gian

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

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

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

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

      Loại bỏ các quảng cáo

      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ố họ bao gồm

      • apiai
      • lắp ráp
      • google-cloud-speech
      • nhân sư móc túi
      • Nhận dạng giọng nói
      • watson-nhà phát triển-đám mây
      • mưu mẹo

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

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

      Nhận dạng giọng nói yêu cầu đầu vào âm thanh và Nhận dạng giọng nói giúp truy xuất đầu vào này thực sự dễ dàng. Thay vì phải xây dựng tập lệnh để truy cập micrô và xử lý tệp âm thanh từ đầu, Nhận dạng giọng nói sẽ giúp bạn thiết lập và chạy 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à do đó cực kỳ linh hoạt. Một trong số đó—Google Web Speech API—hỗ trợ khóa API mặc định được mã hóa cứng vào thư viện SpeechRecognition. Điều đó có nghĩa là bạn có thể rời khỏi đôi chân của mình 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, hỗ trợ cho mọi tính năng của từng API mà nó bao bọc không được đảm bảo. Bạn sẽ cần dành thời gian nghiên cứu các tùy chọn có sẵn để tìm hiểu xem Nhận dạng giọng nói có hoạt động trong trường hợp cụ thể của bạn không

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

      Cài đặt SpeechRecognition

      SpeechRecognition tương thích với Python 2. 6, 2. 7 và 3. 3+, nhưng yêu cầu 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ẽ cho rằng 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 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 thông dịch và gõ

      >>>

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

      Ghi chú. Số phiên bản bạn nhận được có thể thay đổi. Phiên bản 3. 8. 1 là mới nhất tại thời điểm viết

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

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

      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

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

      Tất cả điều kỳ diệu trong Nhận dạng giọng 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'
      
      1

      Tất nhiên, mục đích chính 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'
      
      1 là để nhận dạng giọng nói. Mỗi phiên bản đi kèm với nhiều cài đặt và chức năng khác nhau để nhận dạng giọng nói từ nguồn âm thanh

      Tạo một phiên bản

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

      >>>

      >>> r = sr.Recognizer()
      

      Mỗi phiên bản

      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      1 có bảy phương pháp để nhận dạng giọng nói từ nguồn âm thanh bằng nhiều API khác nhau. đó là

      • 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. Google Web Speech API
      • 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 của SoundHound
      • >>> import speech_recognition as sr
        >>> sr.__version__
        '3.8.1'
        
        20. Bài phát biểu thành văn bản của IBM
      • >>> import speech_recognition as sr
        >>> sr.__version__
        '3.8.1'
        
        21. CMU Sphinx - yêu cầu cài đặt PocketSphinx
      • >>> import speech_recognition as sr
        >>> sr.__version__
        '3.8.1'
        
        22. Mưu mẹo. ai

      Trong số bảy, chỉ có

      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      21 hoạt động ngoại tuyến với công cụ CMU Sphinx. Sáu cái còn lại đều yêu cầu kết nối internet

      Một cuộc thảo luận đầy đủ về các tính năng và lợi ích của từng API nằm ngoài phạm vi của hướng dẫn này. Vì SpeechRecognition cung cấp một khóa API 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 Web Speech API trong hướng dẫn này. Sáu API khác đều yêu cầu xác thực bằng khóa API hoặc kết hợp tên người dùng/mật khẩu. Để biết thêm thông tin, hãy tham khảo tài liệu SpeechRecognition

      thận trọng. Khóa mặc định do SpeechRecognition cung cấp chỉ dành cho mục đích thử nghiệm và Google có thể thu hồi khóa này bất kỳ lúc nào. Không nên sử dụng Google Web Speech API trong sản xuất. Ngay cả với khóa API hợp lệ, bạn sẽ bị giới hạn chỉ 50 yêu cầu mỗi ngày và không có cách nào để tăng hạn ngạch này. May mắn thay, giao diện của SpeechRecognition gần như giống hệt nhau đối với 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 phương pháp

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

      Ok, tán gẫu đủ rồi. Hãy làm bẩn tay chúng ta. Hãy tiếp tục và cố gắng gọi cho

      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      7 trong phiên phiên dịch của bạn

      >>>

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

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

      Bạn có thể có một cái gì đó trông giống như thế này

      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 một cái gì đó có thể được nhận ra từ không có gì?

      Tất cả bảy phương thức

      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      24 của lớp
      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      1 yêu cầu một đối số
      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      51. Trong mỗi trường hợp,
      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      51 phải là một phiên bản của lớp
      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      53 của SpeechRecognition

      Có hai cách để tạo một phiên bản

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

      Loại bỏ các quảng cáo

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

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

      SpeechRecognition giúp làm việc với các tệp âm thanh dễ dàng nhờ lớp

      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      55 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;

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

      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      56. Bạn có thể tìm thêm thông tin ở đây nếu điều này áp dụng cho bạn

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

      Nhập nội dung sau vào phiên phiên dịch của bạn để xử lý nội dung của “harvard. tập tin wav”

      >>>

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

      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

      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      55 có tên là
      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      59 Sau đó, phương thức
      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      57 ghi lại dữ liệu từ toàn bộ tệp vào một phiên bản
      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      53. Bạn có thể xác nhận điều này bằng cách kiểm tra loại
      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      72

      >>>

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

      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 nhận dạng 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 nhìn thấy kết quả

      >>>

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

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

      Nếu bạn đang thắc mắc các cụm từ trong “harvard. wav” đến từ đâu, chúng là những 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 kiểm tra độ rõ lời nói của đườ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

      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 sẵn có 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ở. Bản ghi 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 Traceback (most recent call last): File "", line 1, in TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 74 và Traceback (most recent call last): File "", line 1, in TypeError: recognize_google() missing 1 required positional argument: 'audio_data' 75

      Nếu bạn chỉ muốn ghi lại một phần bài phát biểu trong một tệp thì sao?

      Ví dụ: phần sau ghi lại bất kỳ lời nói nào trong bốn giây đầu tiên của tệp

      >>>

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

      Phương thức

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

      >>>

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

      Lưu ý rằng

      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      50 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ụm từ—hoặc thậm chí giữa từ—điều này có thể ảnh hưởng đến độ chính xác của bản chép lời. Thêm về điều này trong một chút

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

      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      57 có thể được cung cấp một điểm bắt đầu cụ thể bằng cách sử dụng đối số từ khóa
      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      74. Giá trị này biểu thị số giây kể từ khi bắt đầu tệp để 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 độ lệch bốn giây và ghi lại, chẳng hạn như ba giây

      >>>

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

      Các đối số từ khóa

      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      74 và
      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      75 rất hữu ích để phân đoạn tệp âm thanh nếu bạn đã biết trước về cấu trúc của bài phát biểu trong tệp. Tuy nhiên, sử dụng chúng vội vàng có thể dẫn đến phiên âm kém. Để thấy hiệu ứng này, hãy thử cách sau trong trình thông dịch của bạn

      >>>

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

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

      Tương tự như vậy, ở phần cuối của bản ghi, bạn đã bắt được “a co”, đó là phần đầu của cụm từ thứ ba “một đợt lạnh phục hồi sức khỏe và niềm say mê. ” Điều này đã được khớp với “Aiko” bởi API

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

      Loại bỏ các quảng cáo

      Ả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 nhận dạng giọng nói như thế nào, hãy tải xuống “jackhammer. wav” ở đây. Như thường lệ, hãy đảm bảo rằng bạn lưu mục này 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 đọng lại” được nói với tiếng búa khoan lớn trong nền

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

      >>>

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

      Đường tắt

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

      >>>

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

      Điều đó đưa bạn đế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ừ. Tại sao vậy?

      Phương pháp

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

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

      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      55 sử dụng để phân tích với đối số từ khóa
      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      75. Đối số này 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à, điều đó khiến 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á nhiễu để 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 thường xuyên gặp phải những sự cố này, bạn có thể phải dùng đến một số biện pháp 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 các bộ lọc cho tệp. Phần 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 xem cuốn sách Think DSP của Allen Downey nếu bạn quan tâm. Hiện tại, chỉ cần lưu ý rằng tiếng ồn xung quanh trong tệp âm thanh có thể gây ra sự cố và phải được giải quyết để tối đa hóa độ chính xác của tính năng 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 bản sao có thể. Phương thức

      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      7 sẽ luôn trả về bản phiên âm có khả năng nhất trừ khi bạn buộc nó cung cấp cho bạn câu trả lời đầy đủ

      Bạn có thể thực hiện việc này bằng cách đặt đối số từ khóa

      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      82 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'
      
      7 thành
      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      84

      >>>

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

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

      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      7 trả về một từ điển có khóa
      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      86 trỏ đến danh sách các bản ghi có thể có. Cấu trúc của phản hồi này có thể thay đổi từ API này sang API khác và chủ yếu hữu ích cho việc gỡ lỗi

      Đến bây giờ, bạn đã có một ý tưởng khá hay về những điều cơ bản của gói SpeechRecognition. Bạn đã biết cách tạo phiên bản

      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      55 từ tệp âm thanh và sử dụng phương pháp
      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      57 để 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 đối số từ khóa
      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      74 và
      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      75 của
      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      57 và bạn đã trải nghiệm tác động bất lợi của tiếng ồn đối với độ chính xác của bản ghi

      Bây giờ cho phần thú vị. Hãy chuyển đổi từ phiên âm các tệp âm thanh tĩnh sang làm cho dự án của bạn có tính tương tác bằng cách chấp nhận đầu vào từ micrô

      Loại bỏ các quảng cáo

      Làm việc với micrô

      Để truy cập micrô của bạn bằng SpeechRecognizer, 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à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 dùng Linux dựa trên Debian (như Ubuntu), bạn có thể cài đặt PyAudio với

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

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

      Sau khi cài đặt, bạn vẫn có thể cần chạy

      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      03, đặc biệt nếu bạn đang làm việc trong môi trường ảo

      hệ điều hành Mac

      Đối với macOS, trước tiên bạn cần cài đặ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

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

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

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

      >>> r = sr.Recognizer()
      
      0

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

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

      Loại bỏ các quảng cáo

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

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

      >>>

      >>> r = sr.Recognizer()
      
      1

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

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

      >>>

      >>> r = sr.Recognizer()
      
      2

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

      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      08 của lớp
      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      06

      >>>

      >>> 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 micrô là chỉ mục tên của nó trong danh sách được trả về bởi

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

      >>>

      >>> 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 micrô hệ thống mặc định

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

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

      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      06 sẵn sàng hoạt động, đã đến lúc ghi lại một số thông tin đầu vào

      Cũng giống như lớp

      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      55, lớp
      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      06 là trình quản lý ngữ cảnh. Bạn có thể thu đầu vào từ micrô bằng phương pháp
      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      11 của lớp
      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      1 bên trong khối
      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      79. Phương thức 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 thấy im lặng

      >>>

      >>> r = sr.Recognizer()
      
      5

      Sau khi bạn thực hiện khối

      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      79, hãy thử nói “xin chào” vào micrô của bạn. Đợi một lát để thông dịch nhắc hiển thị lại. Sau khi dấu nhắc “>>>” trở lại, 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 không bao giờ quay lại, thì rất có thể micrô của bạn đang thu quá nhiều tiếng ồn xung quanh. Bạn có thể làm gián đoạn quá trình bằng cách sử dụng Ctrl + C để nhận lại lời nhắc của mình.

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

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

      >>>

      >>> r = sr.Recognizer()
      
      7

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

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

      Nhớ lại rằng

      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      55 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, vui lòng điều chỉnh điều này bằng đối số từ khóa
      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      75

      Tài liệu SpeechRecognition khuyến nghị sử dụng thời lượng không nhỏ hơn 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 sẽ 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 quanh của micrô. Thật không may, thông tin này thường không được biết đến trong quá trình phát triển. Theo kinh nghiệm của tôi, thời lượng mặc định là một giây là đủ cho hầu hết các ứng dụng

      Loại bỏ các quảng cáo

      Xử lý giọng nói không thể nhận dạng

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

      >>> r = sr.Recognizer()
      
      8

      Âm thanh không thể khớp với văn bản bởi API sẽ đưa ra một ngoại lệ

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

      Ghi chú. Bạn có thể phải cố gắng nhiều hơn mong đợi để ném ngoại lệ. API hoạt động rất chăm chỉ để phiên âm 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, vỗ tay và tặc lưỡi sẽ liên tục đưa ra ngoại lệ

      Để tất cả chúng cùng nhau. Trò chơi “Đoán chữ”

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

      Đây là kịch bản đầy đủ

      >>> r = sr.Recognizer()
      
      9

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

      Hàm

      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      27 lấy một thể hiện
      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      1 và
      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      06 làm đối số và trả về một từ điển có ba khóa. Khóa đầu tiên,
      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      30, là một giá trị boolean cho biết 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'
      
      31, là
      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      32 hoặc thông báo lỗi cho biết API không khả dụng hoặc lời nói không thể hiểu được. Cuối cùng, phím
      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      33 chứa bản phiên âm của âm thanh được ghi bởi micrô

      Đầu tiên, hàm kiểm tra xem các đối số

      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      34 và
      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      35 có đúng loại không và đưa ra một
      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      36 nếu một trong hai không hợp lệ

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

      Phương pháp

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

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

      Phương pháp

      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      55 được sử dụng để hiệu chỉnh bộ nhận dạng để thay đổi điều kiện tiếng ồn mỗi khi chức năng
      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      27 đượ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 khối
      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      41 được sử dụng để bắt các ngoại lệ
      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      27 và
      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      24 và xử lý chúng theo đó. Sự 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'
      
      44,
      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      45 và
      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      46 của từ điển
      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      47, được trả về bởi hàm
      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      27

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

      Bạn có thể kiểm tra hàm

      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      27 bằng cách lưu tập lệnh trên vào tệp có tên “guessing_game. py” và chạy phần sau trong phiên thông dịch viên

      >>>

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

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

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

      Tiếp theo, một phiên bản

      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      1 và
      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      06 đượ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'
      
      52

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

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

      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      53 được sử dụng để quản lý mỗi lần người dùng cố gắng đ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'
      
      53 là một vòng lặp
      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      53 khác nhắc người dùng đoán nhiều nhất là
      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      56 lần, cố gắng nhận ra đầu vào mỗi lần bằng hàm
      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      27 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'
      
      58

      Nếu khóa

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

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

      Khi vòng lặp

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

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

      Nếu không 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'
      
      71 cho các đối tượng chuỗi được sử dụng để đảm bảo kết hợp đoán tốt hơn với từ đã chọn. API có thể trả về 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à câu trả lời đúng

      Nếu đoán đúng, người dùng thắng và trò chơi kết thúc. Nếu người dùng không chính xác và có bất kỳ lần thử nào còn lại, vòng lặp

      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      53 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ẽ thua trò chơi

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

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

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

      Loại bỏ các quảng cáo

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

      Trong hướng dẫn này, bạn đã biết cách cài đặt gói SpeechRecognition 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'
      
      1 của nó để dễ dàng nhận dạng giọng nói từ cả tệp—sử dụng
      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      57—và đầu vào micrô—sử dụng
      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      75. Bạn cũng đã xem cách xử lý các phân đoạn của tệp âm thanh bằng cách sử dụng

      Bạn đã thấy ảnh hưởng của tiếng ồn đối với độ chính xác của bản chép lời và đã họ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'
      
      1 với tiếng ồn xung quanh bằng
      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      80 Bạn cũng đã biết những ngoại lệ mà phiên bản
      Traceback (most recent call last):
        File "", line 1, in 
      TypeError: recognize_google() missing 1 required positional argument: 'audio_data'
      
      1 có thể đưa ra—
      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      27 đối với 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

      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 muốn tìm hiểu thêm, đây là một số tài nguyên bổ sung

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

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

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

      Một 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ý 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 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 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 hay về nhận dạng giọng nói

      • Tiế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 dành cho độc giả phổ thông 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ý giọng nói
      • Nguyên tắc cơ bản của nhận dạng giọng nói, Rabiner và Juang, Prentice Hall (1993). Rabiner, một nhà nghiên cứu tại Bell Labs, là người có công trong việc thiết kế một số bộ nhận dạng giọng nói khả thi về mặt thương mại đầu tiên. Cuốn sách này hiện đã hơn 20 năm, 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. Phương pháp tiếp cận học sâu, Yu và Deng, Springer (2014). Yu và Deng là nhà nghiên cứu tại Microsoft và cả hai đều rất tích cực trong lĩnh vực xử lý giọng nói. Cuốn sách này đề cập đến rất nhiều phương pháp tiếp cận hiện đại và nghiên cứu tiên tiến nhưng không dành cho những người yếu tim về toán học.

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

      Xuyên suốt hướng dẫn này, chúng ta đã nhận dạng giọng nói bằng tiếng Anh, đây là ngôn ngữ mặc định cho mỗi phương thức

      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      24 của gói Nhận dạng giọng nói. Tuy nhiên, hoàn toàn có thể nhận dạng giọng nói trong các ngôn ngữ khác và khá đơn giản để thực hiện

      Để nhận dạng giọng nói ở 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'
      
      86 của phương thức
      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      24 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 thức 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'
      
      88 cho tiếng Anh Mỹ hoặc
      >>> import speech_recognition as sr
      >>> sr.__version__
      '3.8.1'
      
      89 cho tiếng Pháp. Ví dụ: phần sau nhận dạng giọ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 chấp nhận đối số từ khóa

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

      • 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
      • >>> import speech_recognition as sr
        >>> sr.__version__
        '3.8.1'
        
        20
      • >>> import speech_recognition as sr
        >>> sr.__version__
        '3.8.1'
        
        21

      Để biết thẻ ngôn ngữ nào được API bạn đang sử dụng hỗ trợ, bạn sẽ phải tham khảo tài liệu tương ứng. Có thể tìm thấy 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'
      
      7 trong câu trả lời Stack Overflow này

      Đánh dấu là đã hoàn thành

      Xem ngay Hướng dẫn này có một khóa học video liên quan do nhóm Real Python tạo. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn. Nhận dạng giọng nói bằng Python

      🐍 Thủ thuật Python 💌

      Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python

      Phát trực tiếp âm thanh python

      Gửi cho tôi thủ thuật Python »

      Giới thiệu về David Amos

      Phát trực tiếp âm thanh python
      Phát trực tiếp âm thanh python

      David là một nhà văn, lập trình viên và nhà toán học đam mê khám phá toán học thông qua mã

      » Thông tin thêm về David


      Mỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là

      Phát trực tiếp âm thanh python

      Đan

      Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực

      Phát trực tiếp âm thanh python

      Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia

      Nâng cao kỹ năng Python của bạn »

      Bậc thầy Kỹ năng Python trong thế giới thực
      Với quyền truy cập không giới hạn vào Python thực

      Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng các chuyên gia Pythonistas

      Nâng cao kỹ năng Python của bạn »

      Bạn nghĩ sao?

      Đánh giá bài viết này

      Tweet Chia sẻ Chia sẻ Email

      Bài học số 1 hoặc điều yêu thích mà bạn đã học được là gì?

      Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. Nhận các mẹo để đặt câu hỏi hay và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi