python處理音頻相關的庫

1??音頻信號采集與播放?pyaudio

import sys
import pyaudio
import wave
import timeCHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 1#僅支持單聲道
RATE = 16000
RECORD_SECONDS = 3#更改錄音時長#錄音函數,生成wav文件
def record(file_name):try:os.close(file_name)os.remove(file_name)#先刪除一下文件,以防重名except:pass                  #如果文件不存在直接跳過p = pyaudio.PyAudio()stream = p.open(format=FORMAT,channels=CHANNELS,rate=RATE,input=True,frames_per_buffer=CHUNK)frames = []    print('錄音開始')for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):data = stream.read(CHUNK)#print('i的數據:%s'%data)frames.append(data)print("錄音結束")stream.stop_stream()stream.close()p.terminate()wf = wave.open(file_name, 'wb')wf.setnchannels(CHANNELS)wf.setsampwidth(p.get_sample_size(FORMAT))wf.setframerate(RATE)wf.writeframes(b''.join(frames))wf.close()#播放函數,播放wav文件
def play(file_name):# 定義數據流塊CHUNK = 1024# 只讀方式打開wav文件wf = wave.open(file_name, 'rb')#(sys.argv[1], 'rb')p = pyaudio.PyAudio()# 打開數據流stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),channels=wf.getnchannels(),rate=wf.getframerate(),output=True)# 讀取數據data = wf.readframes(CHUNK)# 播放print('試聽開始')while data != b'':stream.write(data)data = wf.readframes(CHUNK)print('試聽結束')# 停止數據流  stream.stop_stream()stream.close()# 關閉 PyAudio  p.terminate()if __name__=='__main__':record('1.wav')play('1.wav')
  • record是錄音,play是播放

pyaudio是我們要安裝的庫,這個有時不這么好裝,如果pip install pyaudio不行的話,可能要下whl包或者其他方式進行安裝

如果報錯 OSError: [Errno -9999] Unanticipated host error 這個要檢查一下麥克風,如果麥克風連接正常,你要查一下麥克風的權限

一般只有windows上會出這樣的問題,在設置中搜索麥克風

回車后點擊這個

這里變為開就好了

運行的顯示是這樣的

在錄音結束后會成成 1.wav 的音頻文件

這個1.wav在windows中雙擊打開也是可以聽的

2??語音合成?pyttsx3

使用的庫是pyttsx3,項目地址?GitHub - nateshmbhat/pyttsx3: Offline Text To Speech synthesis for python

我在樹莓派上使用pip安裝后使用會出現這個錯誤 OSError: libespeak.so.1: cannot open shared object file: No such file or directory

安裝這個包就可以了 sudo apt-get install espeak

下面我簡單摘錄兩個功能

2.1??播放?

import pyttsx3
pyttsx3.speak("你好")

運行后可以聽到你好

2.2??保存音頻文件

import pyttsx3
engine = pyttsx3.init() # object creation"""Saving Voice to a file"""
# On linux make sure that 'espeak' and 'ffmpeg' are installed
engine.save_to_file('你好', 'test.mp3')
engine.runAndWait()

運行后會得到一個mp3文件,雙擊播放會聽到 你好

2.3??在arm上的適配

在windows上我們直接裝就行了,但是在arm上我運行上面代碼得到了下面的錯誤

他提示沒有eSpeak-ng這種東西

之后就能運行了

3? 語音識別 speechrecognition與pocketsphinx

  • 參考?speechrecognition_魔天一念的博客-CSDN博客
  • 目前我只試過識別英文,鏈接中提到的中文包我沒裝

兩個庫都用pip install 下載就行,pocketsphinx是speechrecognition

import speech_recognition as sr# obtain audio from the microphone
r = sr.Recognizer()
harvard = sr.AudioFile("test.wav")
with harvard as source:audio = r.record(source)
# recognize speech using Sphinx
try:result = r.recognize_sphinx(audio)print(result)
except sr.UnknownValueError:print("Sphinx could not understand audio")
except sr.RequestError as e:print("Sphinx error; {0}".format(e))

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/73330.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/73330.shtml
英文地址,請注明出處:http://en.pswp.cn/web/73330.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[M模擬] lc2711. 對角線上不同值的數量差(對角線遍歷+前后綴分解)

文章目錄 1. 題目來源2. 題目解析 1. 題目來源 鏈接:2711. 對角線上不同值的數量差 前置題: [M模擬] lc3446. 按對角線進行矩陣排序(對角線遍歷公式推導模板題) 矩形的對角線遍歷的基礎題。 題單: 待補充 2. 題目解析 2025年03月25日…

設計一個基于機器學習的光伏發電功率預測模型,以Python和Scikit - learn庫為例

下面為你設計一個基于機器學習的光伏發電功率預測模型,以Python和Scikit - learn庫為例。此模型借助歷史氣象數據和光伏發電功率數據來預測未來的光伏發電功率。 模型設計思路 數據收集:收集歷史氣象數據(像溫度、光照強度、濕度等&#xf…

洛谷 P1351 [NOIP 2014 提高組] 聯合權值(樹)

題目描述 無向連通圖 G 有 n 個點,n?1 條邊。點從 1 到 n 依次編號,編號為 i 的點的權值為 Wi?,每條邊的長度均為 1。圖上兩點 (u,v) 的距離定義為 u 點到 v 點的最短距離。對于圖 G 上的點對 (u,v),若它們的距離為 2,則它們之間…

YoloV8訓練和平精英人物檢測模型

概述 和平精英人物檢測,可以識別游戲中所有人物角色,并通過繪制框將人物選中,訓練的模型僅僅具有識別功能,可以識別游戲中的視頻、圖片等文件,搭配Autox.js可以推理,實現實時繪制,但是對手機性…

智能汽車圖像及視頻處理方案,支持視頻實時拍攝特效能力

在智能汽車日新月異的今天,美攝科技作為智能汽車圖像及視頻處理領域的先行者,憑借其卓越的技術實力和前瞻性的設計理念,為全球智能汽車制造商帶來了一場視覺盛宴的革新。美攝科技推出智能汽車圖像及視頻處理方案,一個集高效性、智…

架構設計之自定義延遲雙刪緩存注解(下)

架構設計之自定義延遲雙刪緩存注解(下) 小薛博客官方架構設計之自定義延遲雙刪緩存注解(下)地址 為了保證Cache和ClearAndReloadCache的靈活性,特意加入EL表達式解析 1、Cache package com.xx.cache;import java.lang.annotation.*; import java.util.concurren…

rosbag|ROS中.bag數據包轉換為matlab中.mat數據類型

代碼見代碼 msg_dict中設置自定義消息類型 test_config中設置需要記錄的具體的值 test_config中topic_name以及message_type照搬plotjuggler打開時的參數 最后生成.mat文件在matlab中進行使用

基于動態 FOF(基金中的基金)策略的基金交易推薦系統的設計與實現思路

下面為你呈現一個基于動態 FOF(基金中的基金)策略的基金交易推薦系統的設計與實現思路,同時給出一個簡單的 Python 示例代碼。 系統設計 1. 需求分析 收集各類基金的歷史數據,涵蓋凈值、收益率、風險指標等。依據動態 FOF 策略…

搭建主從DNS、nfs、nginx

任務需求: 客戶端通過訪問 www.nihao.com 后,能夠通過 dns 域名解析,訪問到 nginx 服務中由 nfs 共享的首頁文件,內容為:Very good, you have successfully set up the system. 各個主機能夠實現時間同步,…

JS 對象轉數組,數組轉對象

數據格式 objMap : {apiP: 8000, sder: true, host: "1.111", wPort: "1335" }要求:將 objMap 轉化為 數組 const equipArray Object.keys(objMap ).map(key > {return {name: key,value: objMap [key]}打印結果 數組轉為對象 let equipAr…

vue - [Vue warn]: Duplicate keys detected: ‘0‘. This may cause an update error.

問題描述: vue項目中,對表單數組賦值時,控制臺拋出警告: 問題代碼: 問題分析: 1、Vue 要求每個虛擬 DOM 節點必須有唯一的 key。該警告信息通常出現在使用v-for循環的場景中,多個同級節點使用…

DeepSeek V3–0324 vs DeepSeek-V3, 排名最高非推理模型

最近DeepSeek V3 升級。 本文將帶您了解該模型的核心特性、基準表現,以及如何通過Hugging Face推理終端和OpenRouter平臺親身體驗。我們還將通過創意生成與邏輯分析兩大測試案例,直觀展示其卓越性能。 DeepSeek-V3-0324 2025年3月24日,深度求索(DeepSeek)AI正式發布了V3…

docker使用uv安裝依賴

官方使用 FastAPI 官方 Dockerfile 中用了兩次: RUN --mounttypecache,target/root/.cache/uv \--mounttypebind,sourceuv.lock,targetuv.lock \--mounttypebind,sourcepyproject.toml,targetpyproject.toml \uv sync --frozen --no-install-project # ? 第一次…

3.0 Disruptor的使用介紹(一)

Disruptor: 其官網定義為:“A High Performance Inter-Thread Messaging Library”,即:線程間的高性能消息框架,與Labview的生產者、消費者模型很相似。 其組成部分比較多,先介紹幾個常用的概念: …

在 Windows 系統下,將 FFmpeg 編譯為 .so 文件

1. 準備環境 確保你的 Windows 系統已安裝以下工具: Android Studio NDK(Native Development Kit) MSYS2(用于提供類 Unix 環境) FFmpeg 源碼 Git Bash(可選,推薦使用) 安裝 …

leetcode二叉樹3

404.左葉子之和 給定二叉樹的根節點 root ,返回所有左葉子之和。 示例 1: 輸入: root [3,9,20,null,null,15,7] 輸出: 24 解釋: 在這個二叉樹中,有兩個左葉子,分別是 9 和 15,所以返回 24示例 2: 輸入: root [1] 輸…

QT網絡通信的接口與使用

文章目錄 前言1.服務端實現流程1.1步驟 1:創建 QTcpServer 并監聽端口1.2步驟 2:處理新連接請求1.3步驟 3:接收客戶端數據1.4步驟 4:處理客戶端斷開 2.客戶端實現流程2.1步驟 1:創建 QTcpSocket 并連接服務器2.2步驟 2…

華為OD機試2025A卷七日集訓第1期 - 按算法分類,由易到難,循序漸進,玩轉OD(Python/JS/C/C++)

目錄 一、適合人群二、本期訓練時間三、如何參加四、7日集訓第1期五、精心挑選21道高頻100分經典題目,作為入門。第1天、邏輯分析第2天、邏輯分析第3天、邏輯分析第4天、邏輯分析第5天、雙指針第6天、二叉樹第7天、回溯 六、集訓總結六、國內直接使用最新GPT-4.5、滿…

Qt 重入和線程安全

重入和線程安全 在整個文檔中,"重入"和 "線程安全 "這兩個術語被用來標記類和函數,以表明它們在多線程應用程序中的使用方式: 線程安全函數可以同時被多個線程調用,即使調用使用的是共享數據,因…