首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

樹莓派打造語音聊天機器人:從硬體到百度AI整合完整教學

     編輯:Java 綜合教學

樹莓派打造語音聊天機器人:從硬體到百度AI整合完整教學

近期利用樹莓派開發了一個能夠進行語音對話的機器人,這裡分享完整實現過程。樹莓派作為全球最流行的微型電腦主板,以信用卡大小、低價格、完善文檔和活躍社區著稱,支援Linux(Debian)等作業系統,非常適合作為嵌入式AI項目平台。本專案使用樹莓派B+版本,配備博通BCM2836四核900MHz處理器與1GB記憶體。

硬體架構:輸入、思考、輸出三大核心

語音機器人需要解決三個核心環節:「聽」——收音並轉文字,「思考」——語義理解與回覆生成,「說」——文字轉語音播放。這涉及語音識別(ASR)、語音合成(TTS)、自然語言處理(NLP)等複雜技術,幸好百度開放平台提供成熟API,大幅降低開發門檻。

樹莓派硬體連接圖:USB接口連接無線網卡、鍵盤、麥克風、音響供電
樹莓派硬體連接:4個USB口分別連接無線網卡、無線鍵盤、麥克風、音響供電

「聽」:語音識別實現

使用arecord工具錄製音頻,指定外部USB麥克風設備(plughw:1)、16kHz採樣率、S16_LE格式,符合百度ASR要求:

arecord -D "plughw:1" -f S16_LE -r 16000 test.wav

錄製完成後(Ctrl+C停止),通過百度語音開放平台REST API進行識別。Python客戶端流程:獲取access_token → Base64編碼音頻數據 → 構建JSON請求發送至vop.baidu.com/server_api → 解析返回文字。關鍵代碼片段:

def baidu_asr(data, id, token):
    speech_data = base64.b64encode(data).decode("utf-8")
    post_data = {
        "format": "wav", "rate": 16000, "channel": 1,
        "cuid": id, "token": token, "speech": speech_data, "len": len(data)
    }
    # 發送POST請求並解析結果...

「思考」:圖靈機器人語義交互

採用百度API Store的圖靈機器人接口,只需發送用戶文字獲取回覆:

def robot_main(words):
    url = "https://apis.baidu.com/turing/turing/turing?"
    words = urllib.parse.quote(words)
    url += f"key=YOUR_KEY&info={words}&userid=1000"
    # 發送請求並返回data["text"]...

「說」:語音合成與播放

百度TTS接口支援男女聲、語調、語速、音量配置,返回MP3二進制數據:

def baidu_tts_by_post(text, id, token):
    post_data = {"tex": text, "lan": "zh", "ctp": 1, "cuid": id, "tok": token}
    # POST請求tsn.baidu.com/text2audio,返回MP3數據

保存為test.mp3後,使用mpg123播放器播放。

系統整合與運行

將ASR、NLP、TTS模組化為asr.py、robot.py、tts.py,主程序main.py串聯流程:

words = asr.asr_main("test.wav")
new_words = robot.robot_main(words)
tts.tts_main("test.mp3", new_words)

Shell腳本自動化執行:

#!/bin/bash
arecord -D "plughw:1" -f S16_LE -r 16000 test.wav
python3 main.py
mpg123 test.mp3

運行腳本,對著麥克風說話後按Ctrl+C,機器人即可回應。這個專案展示了如何利用開放AI服務快速構建端側語音交互系統,適合物聯網、智能家居等場景擴展應用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved