Hướng dẫn python save audio file - python lưu tập tin âm thanh
I am working with speech recognition library in Python and trying to save an audio file after submiting to the API that recognize it. So, my problem comes when I want to save that audio to a file. Show
The audio_file.wav have a size approximately of 210kb(about 4 or 5 seconds recording) when I try to reproduce the audio file.wav, the player throws an error saying that can not play the audio... due to a codec problem.can not play the audio... due to a codec problem. My question are: am I missing save a headers or something like that? Is there another way to saves audio bytes into a file? Edit My answer is in this question Wav file from microphone on Python My answer is in this question Wav file from microphone on Python « Prev: Python: Tôi có thể làm gì với Python?
Tóm tắt và bổ sung tài nguyên Phụ lục: Nhận dạng giọng nói bằng các ngôn ngữ khác ngoài tiếng Anh 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ếu vậy, sau đó tiếp tục đọc! Nó dễ dàng hơn bạn nghĩ. Không còn là một thứ lỗi mố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ộ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 là khá rõ ràng. Việc 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ể sánh kịp.
Những gói nào có sẵn trên PyPI; và » Next: Python: Cách in có định dạng trong Python với bài toán in các thừa số nguyên tốMục lục bài viết: Cách hoạt động của tính năng Nhận dạng giọng nói - Tổng quan Chọn gói nhận dạng giọng nói Python Cài đặt SpeechRecognition Lớp nhận dạng Để giải mã lời nói thành văn bản, các nhóm vectơ được đối sánh 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 đò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 â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 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 nơ-ron đượ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 đặc trưng và giảm kích thước trước khi nhận 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 chứa 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 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 các SDK Python . Chọn gói nhận dạng giọng nói PythonCó một số ít các gói để nhận dạng giọng nói trên PyPI. Một vài trong số chúng bao gồm:
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, như xử lý ngôn ngữ tự nhiên để xác định ý định của người nói, vượt ra ngoài nhận dạng giọng nói cơ bản. Những người khác, như google-cloud-speech, chỉ tập trung vào chuyển đổi giọng nói thành văn bản. Có một gói nổi bật về tính dễ sử dụng: SpeechRecognition. 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 micrô và xử lý các tệp â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à do đó 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 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 đã được 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 SpeechRecognitionSpeechRecognition tương thích với Python 2.6, 2.7 và 3.3+, nhưng yêu cầu một số bước cài đặt bổ sung cho Python 2 . Đối với hướng dẫn này, tôi sẽ giả sử 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:
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à nhập: >>>
Lưu ý: Số phiên bản bạn nhận được có thể khác nhau. Phiên bản 3.8.1 là phiên bản mới nhất tại thời điểm viết bài. Hãy tiếp tục và giữ cho phiên này mở. Bạn sẽ bắt đầu làm việc với nó chỉ trong giây lát. SpeechRecognition sẽ hoạt động hiệu quả nếu tất cả những gì bạn cần làm là hoạt động 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. các >>> r.recognize_google() 1LớpTất cả điều kỳ diệu trong SpeechRecognition xảy ra với 1lớp học.Tất nhiên, mục đích chính của một 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 dạng giọng nói từ nguồn âm thanh.Tạo một 1phiên bản rất dễ dàng. Trong phiên thông dịch hiện tại của bạn, chỉ cần nhập:>>>
Lưu ý: Số phiên bản bạn nhận được có thể khác nhau. Phiên bản 3.8.1 là phiên bản mới nhất tại thời điểm viết bài.
Trong số bảy, chỉ 1hoạ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.Phầ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 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 API Web Speech 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 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ả với một khóa API hợp lệ, bạn sẽ chỉ bị giới hạn ở 50 yêu cầu mỗi ngày và không có cách nào để tăng hạn ngạch này . May mắn thay, giao diện của SpeechRecognition gần như giống hệt 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 4phương thức sẽ đưa ra một 5ngoại lệ nếu không thể truy cập được API. Đối với 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, 7có thể bị ném 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, đủ trò chuyện. Hãy làm bẩn bàn tay của chúng ta. Hãy tiếp tục và cố gắng gọi 7trong phiên thông dịch viên của bạn.>>>
Chuyện gì đã xảy ra? Bạn có thể nhận được một cái gì đó giống như sau:
Bạn có thể đoán điều này sẽ xảy ra. Làm thế nào có thể nhận ra thứ gì đó từ hư không Tất cả bảy 4phương thức của 1lớp đều yêu cầu một 1đối số. Trong mỗi trường hợp, 1phải là một phiên bản của 3lớp SpeechRecognition .Có hai cách để tạo 3phiên bản: từ tệp âm thanh hoặc âm thanh được ghi bởi 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 xét nó.Làm việc với tệp âm thanhTrước khi tiếp tục, bạn cần tải xuống tệp âm thanh. Bạn có thể tìm thấy cái mà tôi đã sử dụng để bắt đầu, “harvard.wav” ở đây . Đảm bảo bạn lưu nó vào cùng một 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ờ 5lớp tiện dụng 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:
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 6công cụ dòng lệnh. 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 >>> harvard = sr.AudioFile('harvard.wav') >>> with harvard as source: ... audio = r.record(source) ... 7để chụp dữ liệu từ tệpNhập thông tin sau vào phiên thông dịch của bạn để xử lý nội dung của tệp “harvard.wav”: >>>
Chuyện gì đã xảy ra? >>>
Chuyện gì đã xảy ra? >>>
Chuyện gì đã xảy ra? Bạn có thể nhận được một cái gì đó giống như sau: Harvard Sentences 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 những 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 >>> type(audio)
|