go實現西瓜視訊花椒直播等平臺智慧答題
本文為轉載,原文:go 實現西瓜視訊花椒直播等平臺智慧答題
本文原始碼
介紹
最近出了很多答題平分獎金的直播,只要能夠連續答對 12 道題,就能與所有答對的人一起平分獎池裡的獎金,20 萬到 500 萬不等。當這個時候,我才體會到 “書到用時方恨少” 這句至理名言。這時突然想到,咦!我們不是有無所不知的網際網路嗎,題目拿到百度中一搜不就完了。可是一看答題時間只有 10 秒,儘管我有著單身 20 多年的手速,也愣是做不到呀。再一想,我特麼是程式猿呀,這種事還需要我親自動手? 於是一通百度,找到了個大神的 java 智慧答題的原始碼,這裡把大神的原始碼地址貼出來供大家參考:https://github.com/lingfengsan/MillionHero
然而,我學了這麼一大段時間的 go 語言,能不能用 go 來實現一下呢。 於是就動手嘗試了一下,思路與前面提到的 java 的工具差不多。下面就來說道說道我是怎麼實現的。
思路
- 手機與電腦連線,並開啟直播頁面
- 當頁面出題時,通過 adb 截圖並儲存到電腦
- 通過百度 AI 文字識別,提取圖片中的題目和選項的文字
- 使用百度搜尋並,然後統計搜尋得到結果數量
- 比較搜尋到的結果數量並排序
- 否定的問題選擇數量最少的選項,肯定的問題選數量最多的選項。
環境
硬體
- windows 電腦一臺
- 安卓手機一部
- 安卓資料線一根
軟體
- golang 開發環境
- adb 安卓除錯驅動
其他
- 百度 AI 開發者平臺建立一個文字識別的應用
環境搭建
硬體就沒有什麼好說的了。這裡主要說下軟體。
golang 開發環境
首先,肯定是要下載安裝包啦,這裡給個下載地址,自己根據情況選擇版本下載:golang 安裝包 (i386 表示 x86,amd64 表示 x64)。
安裝完 Go 之後,我們最好還是檢查一些所有的環境變數是否正常。主要的環境變數有以下幾個:
- GOROOT:Go 的安裝目錄
- GOPATH:用於存放 Go 語言 Package 的目錄,這個目錄不能在 Go 的安裝目錄中
- GOBIN:Go 二進位制檔案存放目錄,寫成%GOROOT%\bin 就好
- PATH:需要將%GOBIN% 加在 PATH 變數的最後,方便在命令列下執行 Go
完成之後在 cmd 視窗輸入:go version
如圖所示,表示我們已經安裝配置成功。
然後就是 IDE 了,這個就更簡單了。直接用記事本都可以,當然也可以用些輕量的編輯器,vscode, vim 都是可以的。也可以用 goland 等。這些看自己的愛好。反正我是用的 vscode。
adb 安裝
adb 的全稱為 Android Debug Bridge 除錯橋,是連線 Android 手機與 PC 端的橋樑,通過 adb 可以管理、操作模擬器和裝置,如安裝軟體、檢視裝置軟硬體引數、系統升級、執行 shell 命令等。 這裡先給一個下載地址:adb 下載地址 (有積分的大佬們從我這裡下吧,我一分都沒有了,想賺點分)
下載完成後安裝好即可。然後把安裝好的路徑配置到環境變數中去,方便我們在 cmd 視窗下使用 adb 命令。配置好後,可以在 cmd 視窗下執行adb devices
命令:
從圖中可以看到,這裡我們啟動了 adb,並且給了個裝置列表,因為我沒有連線安卓裝置,所以沒有東西顯示。 這個時候,我們把安卓手機用資料線連線到電腦,並在手機上開啟 USB 除錯選項。設定->開發者選項->USB除錯
,不同的品牌的手機可能有差別,百度一下你就知道。 有時候可能做到這些還是列不出你的裝置。這時候再需要做以下事情:
- 在計算機管理中裝置管理中找到你的裝置,然後右擊->屬性->詳細資訊->在詳細資訊頁面的屬性中找到硬體 ID,再複製的硬體 ID,我的手機是魅族,我的硬體 ID 是:2A45
- 在
C:\Users\你的使用者名稱\.android
目錄下找到 adb_usb.ini 檔案,如果沒有自己新建。然後把你剛剛複製的硬體 ID 寫進去,由於這個 ID 是 16 進位制的,所以前面加上 0x, 即:0x2A45
。 - 重啟 adb,停止 Adb:
adb kill-server
,啟動 adb:adb start-server
。 完成這些應該就可以了。如果還是不行,請自行百度。
至此,我們的環境算是完成了。
實驗
實驗之前,肯定是下載原始碼嘍,當然還有少不了的依賴包。 這裡我用了個 baidu-ai-sdk 的包。 可以通過以下命令完成安裝:
go get github.com/chenqinghe/baidu-ai-go-sdk
然後通過 git 下載我的原始碼:
git clone https://github.com/Chain-Zhang/answer_ai.git
我們先看下 main 函式的內容
func main(){
for {
var cmd string
fmt.Printf("> ")
fmt.Scan(&cmd)
switch cmd{
case "1":
ai.Start()
case "2":
ai.ExeCommand("cmd", []string{"/c", "adb", "devices"})
case "exit":
os.Exit(1)
}
}
}
從程式碼中可以看到,在程式執行的時候會等待使用者的輸入。
- 當輸入
1
時會進行截圖答題的操作。 - 當輸入
2
時會列出與電腦連線的裝置 - 當輸入
exit
時會退出程式。
下面我們在 cmd 視窗中進入我們程式碼的目錄,執行以下命令來執行我們的程式:
go run main.go
然後輸入 2,看下是否有裝置連線:
然後手機開啟直播,當主播出題時,輸入 1 回車,這裡實驗所以手機直接開啟一張圖片,手機介面如下圖:
經過一系列的分析後,返回以下結果:
根據 否定的問題選擇數量最少的選項,肯定的問題選數量最多的選項
所以這一題選擇: 2-c 哩 c 哩舞。
原始碼
完
轉載請註明出處: go 實現西瓜視訊花椒直播等平臺智慧答題
- 加微信實戰群請加微信(註明:實戰群):gocnio
相關文章
- 視訊直播的實現
- 如何實現視訊加密全平臺播放加密
- Electron實現跨平臺全能視訊播放器播放器
- 上海互動直播平臺招GOGo
- RTMP推流平臺/視訊直播點播分析平臺/人臉識別系統EasyDSS如何實現RTMP負載均衡?負載
- 直播平臺軟體開發,實現自定義標題欄
- 視訊採集:iOS平臺基於AVCaptureDevice的實現iOSAPTdev
- 視訊分享平臺
- 為什麼直播平臺都在推“一對一”視訊聊?
- iOS平臺基於ffmpeg的視訊直播技術揭祕iOS
- 直播平臺搭建,實現圖片縮圖功能
- 短視訊平臺搭建,實現banner自動滑動展示效果
- 直播平臺原始碼,視訊抽幀作為圖片儲存原始碼
- 2019年一對一視訊直播遊戲領域平臺使用者調研問答與報告遊戲
- 短視訊平臺開發,依靠DrawerLayout實現側滑選單效果
- 直播平臺原始碼,FlinkSQL實現行轉列原始碼SQL
- 直播平臺開發,使用swiper實現輪播效果
- 搭建自己的直播平臺,實現exe單例模式單例模式
- 搭建直播平臺,uniapp捲軸置頂實現APP
- 如何實現直播連麥?音視訊SDK不可缺少!
- ffmpeg+nginx+rtmp+web實現視訊直播網站NginxWeb網站
- live555實現共享記憶體視訊直播記憶體
- 網路視訊直播系統開發,視訊解碼是如何實現的?
- 搭建直播平臺,iYiuMessage 訊息提示元件元件
- 8┃音視訊直播系統之 WebRTC 信令系統實現以及通訊核心並實現視訊通話Web
- 智林 - AI 答題應用平臺介紹AI
- 直播平臺原始碼,迴圈滾動RecyclerView的實現原始碼View
- 直播平臺原始碼開發,簽到功能的實現原始碼
- 視訊直播app原始碼,將內容推薦給平臺內的好友APP原始碼
- 12┃音視訊直播系統之 WebRTC 實現1對1直播系統實戰Web
- 短視訊平臺有哪些?什麼平臺收益高?
- 視訊直播和實時音視訊區別調研
- JEESZ-kafka訊息服務平臺實現Kafka
- 短視訊直播系統開發直播短視訊程式搭建短視訊互動直播
- 短視訊平臺原始碼,彈性佈局實現自適應高度cell原始碼
- 成品直播原始碼,實現在平臺內部的搜尋原始碼
- 直播帶貨平臺,仿某寶實現商品上下滑動
- 直播平臺搭建,實現自定義設定登入頁面