Làm cách nào để đọc tín hiệu âm thanh trong Python?
Lời nói là hình thức giao tiếp chính của con người và cũng là một phần quan trọng để hiểu hành vi và nhận thức. Nhận dạng giọng nói trong Trí tuệ nhân tạo là một kỹ thuật được triển khai trên các chương trình máy tính cho phép chúng hiểu các từ được nói Show
Đối với máy móc, để sử dụng thông tin này, nó cần được lưu trữ dưới dạng tín hiệu số và được phân tích thông qua phần mềm. Việc chuyển đổi từ analog sang kỹ thuật số bao gồm hai quá trình dưới đây
Một hệ thống Nhận dạng giọng nói chung được thiết kế để thực hiện các tác vụ được đề cập bên dưới và có thể dễ dàng tương quan với kiến trúc phân tích dữ liệu tiêu chuẩn
Hãy để chúng tôi đi qua tất cả các bước này và xử lý từng bước một, một cách chi tiết, với mã giả tương ứng. Ngoài ra, trước khi chúng ta bắt đầu, bên dưới là một liên kết đến kho lưu trữ mã hoàn chỉnh sẽ hữu ích để xem qua cùng với hướng dẫn này rjrahul24/ai-with-python-seriesChuỗi hướng dẫn về Python nhằm tìm hiểu các khái niệm về Trí tuệ nhân tạo. Loạt bài hướng dẫn này bắt đầu từ…github. com Bước 1. Đọc tệp cho tín hiệu âm thanhTệp I/O bằng Python (scipy. i). SciPy có nhiều phương thức thực hiện thao tác tệp trong Python. Mô-đun I/O bao gồm các phương thức read(filename[, mmap]) và write(filename, rate, data) được sử dụng để đọc từ một. wav và viết một mảng NumPy ở dạng. tập tin wav. Chúng tôi sẽ sử dụng các phương pháp này để đọc và ghi các định dạng tệp âm thanh (âm thanh) Bước đầu tiên để bắt đầu thuật toán nhận dạng giọng nói là tạo một hệ thống có thể đọc các tệp chứa âm thanh (. sóng,. mp3, v.v. ) và hiểu thông tin có trong các tệp này. Python có các thư viện mà chúng ta có thể sử dụng để đọc từ các tệp này và diễn giải chúng để phân tích. Mục đích của bước này là trực quan hóa tín hiệu âm thanh dưới dạng điểm dữ liệu có cấu trúc
# Using IO module to read Audio FilesHình ảnh của tác giả Đây là đại diện của biên độ âm thanh của tệp đầu vào so với thời lượng phát của nó. Chúng tôi đã trích xuất thành công dữ liệu số từ âm thanh (. wav) tập tin Bước 2. Chuyển đổi tần số âm thanhBiểu diễn tín hiệu âm thanh mà chúng ta đã thực hiện trong phần đầu tiên biểu diễn tín hiệu âm thanh trong miền thời gian. Nó cho thấy cường độ (độ to hoặc biên độ) của sóng âm thanh theo thời gian. Các phần có biên độ = 0, đại diện cho sự im lặng
Biểu diễn miền tần số. Để hiểu rõ hơn về tín hiệu âm thanh, cần xem xét nó qua miền tần số. Biểu diễn tín hiệu âm thanh này sẽ cung cấp cho chúng tôi thông tin chi tiết về sự hiện diện của các tần số khác nhau trong tín hiệu. Biến đổi Fourier là một khái niệm toán học có thể được sử dụng trong việc chuyển đổi tín hiệu liên tục từ trạng thái miền thời gian ban đầu sang trạng thái miền tần số. Chúng tôi sẽ sử dụng Biến đổi Fourier (FT) trong Python để chuyển đổi tín hiệu âm thanh thành biểu diễn tập trung vào tần số Biến đổi Fourier trong Python. Biến đổi Fourier là một khái niệm toán học có thể phân tách tín hiệu này và đưa ra các tần số riêng lẻ. Điều này rất quan trọng để hiểu tất cả các tần số được kết hợp với nhau để tạo thành âm thanh mà chúng ta nghe thấy. Biến đổi Fourier (FT) cung cấp tất cả các tần số có trong tín hiệu và cũng cho biết độ lớn của từng tần số
NumPy (np. fft. fft). Hàm NumPy này cho phép chúng tôi tính toán Biến đổi Fourier rời rạc 1-D. Hàm sử dụng thuật toán Biến đổi Fourier nhanh (FFT) để chuyển đổi một chuỗi đã cho thành Biến đổi Fourier rời rạc (DFT). Trong tệp chúng tôi đang xử lý, chúng tôi có một chuỗi biên độ được lấy từ tệp âm thanh, ban đầu được lấy mẫu từ tín hiệu liên tục. Chúng tôi sẽ sử dụng chức năng này để chuyển đổi miền thời gian này thành tín hiệu miền tần số rời rạc Chuyển đổi tín hiệu âm thanh từ miền thời gian sang miền tần số. Hình ảnh của tác giảBây giờ chúng ta hãy xem qua một số mã để triển khai Biến đổi Fourier thành tín hiệu Âm thanh với mục đích biểu thị âm thanh theo cường độ của nó (decibel (dB)) # Working on the same input file Với điều này, chúng tôi có thể áp dụng Biến đổi Fourier cho tệp đầu vào Âm thanh và sau đó thấy biểu diễn miền tần số (tần số theo cường độ tín hiệu) của âm thanh Bước 3. Trích xuất các tính năng từ lời nóiKhi bài phát biểu được chuyển từ tín hiệu miền thời gian sang tín hiệu miền tần số, bước tiếp theo là chuyển đổi dữ liệu miền tần số này thành một vectơ đặc trưng có thể sử dụng được. Trước khi bắt đầu điều này, chúng ta phải biết về một khái niệm mới gọi là MFCC Hệ số Cepstral tần số Mel (MFCC)MFCC là một kỹ thuật được thiết kế để trích xuất các tính năng từ tín hiệu âm thanh. Nó sử dụng thang MEL để phân chia các dải tần của tín hiệu âm thanh và sau đó trích xuất các hệ số từ từng dải tần riêng lẻ, do đó, tạo ra sự phân tách giữa các tần số. MFCC sử dụng Biến đổi Cosin rời rạc (DCT) để thực hiện thao tác này. Thang đo MEL được thiết lập dựa trên nhận thức của con người về âm thanh, tôi. e. , cách bộ não con người xử lý tín hiệu âm thanh và phân biệt giữa các tần số khác nhau. Chúng ta hãy xem sự hình thành của thang đo MEL bên dưới
Toán học của MFCC và ngân hàng bộ lọcMFCC và việc tạo ra các ngân hàng bộ lọc đều được thúc đẩy bởi bản chất của tín hiệu âm thanh và bị ảnh hưởng bởi cách con người cảm nhận âm thanh. Nhưng quá trình xử lý này cũng đòi hỏi rất nhiều tính toán toán học đằng sau hậu trường trong quá trình thực hiện. Python trực tiếp cung cấp cho chúng ta các phương thức để xây dựng bộ lọc và thực hiện chức năng MFCC trên âm thanh nhưng chúng ta hãy xem qua phép toán đằng sau các chức năng này
Mặc dù, ngày nay, khi chi phí tính toán đã giảm (nhờ Điện toán đám mây), các hệ thống giọng nói học sâu ít bị nhiễu hơn, được sử dụng trên các kỹ thuật này
# Installing and importing necessary librariesCác đường màu vàng nằm ngang đầu tiên bên dưới mỗi phân đoạn là tần số cơ bản và ở mức mạnh nhất của chúng. Phía trên đường màu vàng là các sóng hài có cùng khoảng cách tần số giữa chúng. . Hình ảnh của tác giả # Generating filter bank featuresHình ảnh của tác giả Nếu chúng ta thấy hai bản phân phối, rõ ràng là bản phân phối âm thanh tần số thấp và tần số cao được tách biệt trong hình ảnh thứ hai Bước 4. Nhận biết lời nói Nhận dạng giọng nói là quá trình hiểu giọng nói của con người và chuyển nó thành văn bản trong máy. Có một số thư viện có sẵn để xử lý lời nói thành văn bản, cụ thể là Bing Speech, Google Speech, Houndify, IBM Speech to Text, v.v. Chúng tôi sẽ sử dụng thư viện Google Speech để chuyển đổi Lời nói thành Văn bản API bài phát biểu của GoogleThông tin thêm về API Google Speech có thể được đọc từ Trang Google Cloud và trang PyPi Nhận dạng Giọng nói. Một vài tính năng chính mà Google Speech API có khả năng là điều chỉnh giọng nói. Điều này có nghĩa là API hiểu miền của bài phát biểu. Chẳng hạn, tiền tệ, địa chỉ, năm đều được quy định trong quá trình chuyển đổi lời nói thành văn bản. Có các lớp dành riêng cho miền được xác định trong thuật toán nhận ra những lần xuất hiện này trong lời nói đầu vào. API hoạt động với cả tệp tại chỗ, tệp được ghi trước cũng như bản ghi trực tiếp trên micrô trong môi trường làm việc hiện tại. Chúng tôi sẽ phân tích lời nói trực tiếp thông qua đầu vào microphonic trong phần tiếp theo Luồng kiến trúc của Google Speech API. Hình ảnh của tác giả
# Install the SpeechRecognition and pipwin classes to work with the Recognizer() class Với điều này, chúng tôi kết thúc bài viết Phân tích âm thanh và nhận dạng giọng nói của chúng tôi. Tôi vẫn khuyên bạn nên xem qua các liên kết được đề cập trong phần Tài liệu tham khảo và kho lưu trữ mã được liên kết ở đầu câu chuyện để có thể theo dõi từng bước Phần kết luận Nhận dạng giọng nói là một khái niệm AI cho phép máy nghe giọng nói của con người và phiên âm văn bản từ đó. Mặc dù về bản chất phức tạp, các trường hợp sử dụng xoay quanh Nhận dạng giọng nói có rất nhiều. Từ việc giúp những người dùng có khả năng khác nhau truy cập vào máy tính đến máy trả lời tự động, thuật toán Nhận dạng giọng nói tự động (ASR) đang được nhiều ngành sử dụng ngày nay. Chương này đã giới thiệu ngắn gọn về kỹ thuật phân tích âm thanh và chỉ ra một số kỹ thuật thao tác cơ bản để làm việc với âm thanh. Mặc dù không chi tiết, nhưng nó sẽ giúp tạo ra một bức tranh tổng thể về cách hoạt động của phân tích giọng nói trong thế giới AI Ảnh của 수안 최 trên BaptVề tôiTôi là Rahul, hiện đang nghiên cứu Trí tuệ nhân tạo và triển khai Phân tích dữ liệu lớn trên Xbox Games. tôi làm việc với Microsoft. Ngoài công việc chuyên môn, tôi cũng đang cố gắng xây dựng một chương trình liên quan đến việc tìm hiểu cách thức cải thiện tình hình kinh tế ở các quốc gia đang phát triển trên thế giới bằng cách sử dụng AI Hiện tại tôi đang ở Đại học Columbia ở New York và bạn có thể tự do kết nối với tôi trên LinkedIn trên Twitter Làm cách nào để đọc âm thanh trong Python?open() Hàm này mở tệp để đọc/ghi dữ liệu âm thanh. Hàm cần hai tham số - đầu tiên là tên tệp và thứ hai là chế độ. Chế độ có thể là 'wb' để ghi dữ liệu âm thanh hoặc 'rb' để đọc.
Bạn có thể phát âm thanh qua Python không?Kết luận. Phát và ghi âm thanh bằng Python
. Phát nhiều định dạng âm thanh, bao gồm mảng WAV, MP3 và NumPy . Ghi âm thanh từ micrô của bạn vào mảng NumPy hoặc Python. Lưu trữ âm thanh đã ghi của bạn ở nhiều định dạng khác nhau, bao gồm WAV và MP3.
Làm cách nào để xử lý dữ liệu âm thanh Python?Khái niệm cơ bản về xử lý âm thanh trong Python . Đọc và ghi các tệp âm thanh ở các định dạng khác nhau (WAV, MP3, WMA, v.v. ) Phát âm thanh trên máy tính của bạn Thể hiện âm thanh dưới dạng sóng và xử lý nó. lọc, lấy mẫu lại, xây dựng phổ, v.v. Làm cách nào để đọc âm thanh từ mic trong Python?Nhận đầu vào bằng giọng nói từ người dùng trong Python bằng PyAudio – speech_recognizer . Lấy đầu vào từ mic Chuyển đổi giọng nói hoặc lời nói thành văn bản Lưu trữ văn bản trong một biến/hoặc bạn có thể trực tiếp lấy nó làm đầu vào của người dùng |