樹莓派FM廣播點歌系統

來源:互聯網
上載者:User
文章目錄
  • 簡介
簡介

前段時間有人發貼說用樹莓派可以發射FM收音機訊號, 於是便整來玩玩,發現效果還不錯,於是想擴充一下功能。

網上實現的FM發射功能是有局限性的:

  • 只能播放wav格式檔案,並且wav檔案必須是16 bit 22.5kHz Mono格式的。
  • 只支援播放本地音頻檔案,或者使用-從終端讀取音頻

我設想的或已經實現的功能是這樣的:

  • 支援mp3格式
  • 支援流媒體,或者說支援直接播放網路上的音樂
  • 可以添加音樂,方便管理
  • 可以大量新增歌曲
  • 可以播放區域網路內電腦上的音樂
  • 自動根據歌名線上搜尋歌曲並播放
  • 有一個web頁面,允許任何人添加自己喜歡的歌曲
  • web頁面顯示當前現正播放的歌曲和將要播放的歌曲列表
  • 當播放清單裡面沒有歌曲的時候自動全部隨機播放一首歌曲,保證連續播放
  • 可以跳過現正播放的歌曲播放下一曲

安裝我做的系統之後你就可以用樹莓派做伺服器, 發送廣播,播放流行歌曲或者英語聽力(或者法律允許播放的東西) 告訴親朋好友一個網址,然後他們就能在上面點歌。 四六級沒過的朋友可以添加四六級聽力,類比真實考試環境。 或者放到敬老院裡面,給老年人播放戲曲。 除此之外,只要程式運行著,你就能用收音機聽到音樂, 不用天天費神去網上找歌了。 這樣也為你的手機節省好多儲存歌曲的空間,因為有了樹莓派和我的點歌系統, 你用手機上的收音機就能聽到想聽的歌曲。 我的系統不會給樹莓派增加任何垃圾,所有網路歌曲不緩衝, 不用擔心歌曲過多而將儲存卡填滿。

關鍵技術與原理

因為樹莓派只支援wav格式音樂,所以要將mp3格式轉換成wav格式。

但是一般軟體轉換效率比較低,樹莓派CPU比較差,轉換時間更長。

後來我找到一個比較好的解決方案,用mpg123這個軟體進行解碼, 解碼之後輸出到終端上,這時就已經轉換成wav格式了。 然後樹莓派的pifm程式設定成從終端讀取音頻, 這樣再通過一個管道將兩個程式連起來,就能實現一邊解碼一邊播放

另外,mpg123的功能比較強,支援直接播放網路音樂, 也就是說,只要給mpg123傳遞一個歌曲url,就能實現邊下載邊播放

上面的文字用一條命令總結就是:

mpg123 -m -C -q -s 歌曲地址或url | sudo pifm - 頻率 歌曲採樣率例如mpg123 -m -C -q -s /home/pi/aaa.mp3 | sudo pifm - 98.5 44100mpg123 -m -C -q -s http://abc.com/123.mp3 | sudo pifm - 98.5 44100

上面的命令看起來很簡單,費了半天勁才鼓搗好,因為命令的參數很多, 組合起來讓他們協調工作就需要不斷嘗試!

解決了這個技術難題,下面的任務就簡單了,對於pythoner來說, 下面提到的東西都不叫事!^_^

簡單列一下:

  • 歌曲是從搜狗mp3抓的,只要輸入歌曲的名字,自動搜尋,返回歌曲url
  • web管理介面用web.py實現,即時顯示現正播放的歌曲和歌曲列表
  • 資料庫用sqlite3,用來儲存使用者輸入的歌曲資訊,方便日後資料分析
  • 如果列表為空白則從本地播放清單(文字檔)隨機選一個播放
安裝部署方法

為了簡化安裝部署,我專門寫了一個安裝指令碼,就是setup.sh, 直接執行就能安裝。(注意,本系統樹莓派專用,請不要在電腦上執行此指令碼)

wget https://github.com/ma6174/fmpi/archive/master.zipunzip master.zipcd fmpi-mastersudo bash setup.sh

這樣就自動安裝依賴的軟體

使用方法

啟動並執行話可以直接執行程式裡面的start.sh:

sudo bash start.sh

然後在樹莓派的GPIO4這個引腳上插上一根杜邦線當天線

ifconfig命令察看你的ip地址,然後在瀏覽器上開啟:http://樹莓派IP:8000/, 可以看到現正播放的歌曲,然後你可以添加你想要收聽的歌曲。

開啟收音機,調到FM 98.5頻道,你就能聽到現正播放的歌曲了!

如果感覺這首歌不好聽,可以直接按樹莓派的鍵盤的q鍵,自動播放下一曲

想終止程式的話按Ctrl + c

可以修改config.py修改預設的98.5這個播放頻率。

其他

對本系統感興趣的話可以去github上查看源碼,擴充系統功能: https://github.com/ma6174/fmpi

任何問題和建議可以留言或email聯絡我:ma6174#163.com

gtalk:ma617495#gmail.com

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.