中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開(kāi)通VIP
簡(jiǎn)單實(shí)現(xiàn)語(yǔ)音控制視頻播放教程

前言:家里老人在電腦上看電視劇時(shí)不會(huì)播放、暫停等操作,老人學(xué)習(xí)能力較差,這些簡(jiǎn)單的操作完全可以通過(guò)程序完成,于是我便想通過(guò)語(yǔ)音識(shí)別實(shí)現(xiàn)控制視頻播放,實(shí)現(xiàn)起來(lái)也很簡(jiǎn)單,接下來(lái)我會(huì)分享自己開(kāi)發(fā)中的每一步

目標(biāo):實(shí)現(xiàn)語(yǔ)音控制視頻播放、暫停、增大音量、減小音量

準(zhǔn)備:離線語(yǔ)音識(shí)別模塊、CH340 USB轉(zhuǎn)TTL模塊(用于下載、通信,一般商家會(huì)提供配套)、電腦

原理概述:首先給語(yǔ)音識(shí)別模塊設(shè)置好命令詞,語(yǔ)音模塊識(shí)別出來(lái)后通過(guò)串口將指令發(fā)送給電腦,電腦上的python程序根據(jù)串口接收的數(shù)據(jù)執(zhí)行播放、暫停等操作

第一步:設(shè)置語(yǔ)音模塊

注意,購(gòu)買的語(yǔ)音模塊一定要有串口輸出功能

各種語(yǔ)音模塊設(shè)置方法不一樣,大家按商家給的教程弄,我使用的模塊是在網(wǎng)頁(yè)端進(jìn)行設(shè)置

串口參數(shù)設(shè)置,保持默認(rèn)就行,簡(jiǎn)單記一下波特率,后面python編程會(huì)用

串口參數(shù)設(shè)置

設(shè)置命令詞和回復(fù)語(yǔ)

設(shè)置命令詞和回復(fù)語(yǔ)

設(shè)置命令詞對(duì)應(yīng)動(dòng)作

設(shè)置命令詞對(duì)應(yīng)動(dòng)作

發(fā)送的數(shù)據(jù)盡量設(shè)置簡(jiǎn)單一點(diǎn),只要后面的程序能和這里對(duì)應(yīng)就行,比如我設(shè)置的是0、1、2、3

編譯固件、燒錄程序等就不演示了,各種語(yǔ)音模塊方法不一樣,大家按商家給的教程弄

第二步:編寫python程序

程序只有幾十行,很簡(jiǎn)單,不過(guò)我們先做一項(xiàng)準(zhǔn)備工作,查看語(yǔ)音模塊的端口名

打開(kāi)電腦的設(shè)備管理器,我是win10,所以打開(kāi)方法是右鍵此電腦-管理-設(shè)備管理器,然后展開(kāi)端口,將語(yǔ)音模塊插入電腦,我這里增加的端口是USB-SERIAL CH340(COM3),括號(hào)里的端口號(hào)不管,注意端口名是“USB-SERIAL CH340”中間有空格,那么我們用USB-SERIAL或者CH340其中一個(gè)進(jìn)行識(shí)別就行(但不能用USB-SERIAL CH340,否則識(shí)別不出來(lái),這和后面編程有關(guān)),我們先記住,后面會(huì)用

查看端口名

接下來(lái)就是代碼了,程序的工作方式就是自動(dòng)掃描并打開(kāi)串口,接受串口數(shù)據(jù),根據(jù)數(shù)據(jù)模擬按下按鍵的操作,實(shí)現(xiàn)播放暫停等功能,代碼大部分已注釋,大家應(yīng)該能看懂

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @FileName  :SpeechRecognizerTool.py
# @Time      :2022/12/18 13:46
# @Author    :Storm

import time     # 時(shí)間相關(guān)函數(shù)
import serial  # 串口通信
import pyautogui  # 模擬按下按鍵
import threading    # 線程
import serial.tools.list_ports

Flag = 0    # 語(yǔ)音識(shí)別模塊是否連接的標(biāo)志
port_list = list('')    # 端口列表
port_num = ''   # 端口號(hào)


# 定義串口基類
class MySerial(threading.Thread):
    def run(self):
        global Flag     # 先全局聲明再引用
        while True:
            if Flag == 1:     # 檢測(cè)語(yǔ)音模塊連接到電腦時(shí)
                ser = serial.Serial(port_num, 9600, timeout=4)  # 打開(kāi)串口 注意波特率要和前面語(yǔ)音模塊設(shè)置的一樣

                while ser.is_open:  # 串口打開(kāi)時(shí)
                    count = ser.inWaiting()  # 檢測(cè)串口緩沖區(qū)數(shù)據(jù)

                    if count != 0:  # 如果存在數(shù)據(jù)
                        SerialRcvData = ser.read(ser.in_waiting).hex()  # 以16進(jìn)制格式讀取數(shù)據(jù)

                        # 根據(jù)收到的數(shù)據(jù)模擬點(diǎn)擊按鍵
                        if SerialRcvData == '00':
                            pyautogui.press('space')
                        elif SerialRcvData == '01':
                            pyautogui.press('space')
                        elif SerialRcvData == '02':
                            pyautogui.press('volumeup')     # 調(diào)大音量
                        elif SerialRcvData == '03':
                            pyautogui.press('volumedown')   # 調(diào)大音量
                    time.sleep(0.1)  # 可以有一個(gè)特別小的延時(shí),否則CPU使用率較高
                ser.close()     # 語(yǔ)音模塊端口關(guān)閉時(shí), 關(guān)閉串口避免占用
                Flag = 0    # 端口關(guān)閉 標(biāo)志置0
            time.sleep(0.1)


if __name__ == "__main__":

    MyThread = MySerial()
    MyThread.start()    # 開(kāi)啟串口基類線程

    while True:
        time.sleep(0.5)     # 延時(shí)
        port_list = list(serial.tools.list_ports.comports())       # 獲取所有端口
        if len(port_list) > 0:
            # 檢測(cè)語(yǔ)音模塊的端口
            for i in port_list:
                port_temp_str = str(i)      # 將列表元素轉(zhuǎn)化為字符串
                port_list = port_temp_str.split()       # 使字符串以空格號(hào)分割
                for j in port_list:     # 對(duì)于以空格為間隔的每個(gè)元素
                    if "CH340" == j:    # 檢測(cè)是否是語(yǔ)音識(shí)別模塊的端口名
                        port_num = port_list[0]     # 保存端口號(hào)
                        Flag = 1  # 檢測(cè)到語(yǔ)音模塊, 標(biāo)志置1
        else:
            Flag = 0

第三步:收尾

將python打包成exe并將程序設(shè)置為開(kāi)機(jī)啟動(dòng),其實(shí)設(shè)置開(kāi)機(jī)啟動(dòng)可有可無(wú),但是因?yàn)檎Z(yǔ)音模塊需要配合python程序才有控制視頻的功能,所以為了我不在的時(shí)候我的家人打開(kāi)電腦插上語(yǔ)音模塊就能使用這個(gè)功能,我就直接開(kāi)機(jī)啟動(dòng)了,網(wǎng)上有非常詳細(xì)的教程,我就不多贅述了,大家直接百度即可

最后,享受成果吧

這是我使用的語(yǔ)音模塊,很小,一只手就能握住

插在電腦上的樣子,下面吊著的是喇叭

插在電腦上

大家還可以繼續(xù)開(kāi)發(fā)更多其他功能,比如python可以打開(kāi)外部軟件,音樂(lè)軟件有全局快捷鍵,可以讓語(yǔ)音模塊控制電腦打開(kāi)音樂(lè)軟件放歌等等,原理是一樣的

參考:

https://blog.csdn.net/cp_srd/article/details/104741429

https://blog.csdn.net/weixin_28432777/article/details/113673599

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
python+樹莓派實(shí)現(xiàn)IoT(物聯(lián)網(wǎng))數(shù)據(jù)上傳到服務(wù)器
raspberry pi 串口控制51單片機(jī) | 張子萌的個(gè)人小站
python serial 獲取所有的串口名稱
Python 中輕松實(shí)現(xiàn)串口通信
使用python來(lái)調(diào)試串口
python中pyserial模塊使用方法
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服