M1 安装pyaudio模块(亲测有效)

本文介绍了解决使用Homebrew在Mac上安装PortAudio时遇到的问题,包括处理git错误和配置git的方法,并最终实现成功安装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


​/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

brew install wget

brew install portaudio

出现下面情况

执行

brew install faudio

 出现Error: Command failed with exit 128: git问题

执行

brew -v

会展示两个git config配置命令,直接复制运行

再重新执行

 

 brew install portaudio

会安装成功(没有error不用管,否是上面有问题,或者遇到情况不同)

pip3 install pyaudio

 

Python语音助手是一个能够接收语音输入并进行文字识别、聊天回复、文字合成为语音并播放的应用程序。实现一个Python语音助手的过程可以分为以下几个步骤: 1. 语音转文字:使用百度AI开放平台的语音识别API,将音频文件转换为文字。可以使用FFmpeg工具将音频格式转换为API支持的格式。 2. 聊天接口:使用图灵机器人接口,将用户的文字输入发送给机器人,获取机器人的回复。 3. 文字转语音:使用讯飞开放平台的语音合成API,将机器人的回复文字转换为语音文件。 4. 播放语音:使用pyaudio模块录制和播放音频,将语音文件播放出来。 下面是一个简单的Python语音助手的代码示例: ``` from aip import AipSpeech import pyaudio import wave import requests import json # 初始化百度语音识别的API APP_ID = '25016634' API_KEY = 'Qsj6XGf0m1ilsV0QwLTmHeiy' SECRET_KEY = 'Mctl1jHY85Hr3wmTpizLI********' client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) # 录音函数 def record_audio(): # 使用pyaudio录制音频 CHUNK = 1024 FORMAT = pyaudio.paInt16 CHANNELS = 1 RATE = 16000 RECORD_SECONDS = 5 p = pyaudio.PyAudio() stream = p.open(format=FORMAT, channels=CHANNELS, rate=RATE, input=True, frames_per_buffer=CHUNK) print("* recording") frames = [] for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)): data = stream.read(CHUNK) frames.append(data) print("* done recording") stream.stop_stream() stream.close() p.terminate() # 保存录音文件 wf = wave.open("record.wav", 'wb') wf.setnchannels(CHANNELS) wf.setsampwidth(p.get_sample_size(FORMAT)) wf.setframerate(RATE) wf.writeframes(b''.join(frames)) wf.close() # 语音转文字函数 def speech_to_text(): # 读取录音文件 with open("record.wav", 'rb') as f: data = f.read() # 调用百度语音识别API,将音频文件转为文字 result = client.asr(data, 'wav', 16000, { 'dev_pid': 1536, }) # 提取识别结果 if 'result' in result.keys(): text = result['result'][0] else: text = "" return text # 聊天函数 def chat(text): # 调用图灵机器人接口,进行文字聊天 url = 'http://openapi.tuling123.com/openapi/api/v2' data = { "reqType": 0, "perception": { "inputText": { "text": text } }, "userInfo": { "apiKey": "YOUR_API_KEY", "userId": "YOUR_USER_ID" } } response = requests.post(url, json=data) result = json.loads(response.text) # 提取机器人的回复 reply = result['results'][0]['values']['text'] return reply # 文字转语音函数 def text_to_speech(text): # 调用讯飞开放平台的语音合成API,将文字转为语音文件 # 这里省略具体代码 # 返回生成的语音文件路径 return "speech.wav" # 播放语音函数 def play_audio(file_path): # 使用pyaudio播放音频 CHUNK = 1024 wf = wave.open(file_path, '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) while data: stream.write(data) data = wf.readframes(CHUNK) stream.stop_stream() stream.close() p.terminate() # 主函数 def main(): # 录音 record_audio() # 语音转文字 text = speech_to_text() # 聊天 reply = chat(text) # 文字转语音 speech_file = text_to_speech(reply) # 播放语音 play_audio(speech_file) # 运行主函数 if __name__ == '__main__': main() ``` 这段代码实现了一个基本的Python语音助手,可以录制音频文件,并将其转换为文字,然后发送给机器人进行聊天回复,最后将回复的文字转换为语音并播放出来。需要注意的是,其中的一些API的调用需要替换为你自己的API Key和Secret Key。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [小白如何做一个Python人工智能语音助手](https://blog.youkuaiyun.com/m0_57307642/article/details/120849915)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [简易语音助手—python](https://blog.youkuaiyun.com/chqhong/article/details/112427268)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值