계기는'새끼손가락'.

15380 단어 PyaudioReactPython

계기는'새끼손가락'.


손가락으로 밝게 IT 스타일의 일을 해보도록 하겠습니다.
손가락 등을 계기로 브라우저를 제어하고 유튜브 영상을 켜고 싶다고 합니다.
손가락으로 초롱을 켜고 브라우저를 제어하는 방법은 파이톤이다.
유튜브 비디오의 브라우저를 제어하기 위해 React를 사용하기로 결정했습니다.

파이썬 정보


그룹은 소리를 간단하게 식별할 수 있는 언어가 있는지, 프로그램 라이브러리의 결과가 있는지 토론했다.
PyAudio라는 프로그램 라이브러리를 사용했습니다.

환경 구조


PyAudio를 이용하기 위해서는 Pyton의 실행 환경이 필요합니다.
이에 따라 PC에 LinuxOS(ubuntu)를 추가해 Linux에 환경을 구축하기로 했다.
Ubuntu 버전은 16.04입니다.
python의 버전은 3.5입니다.
python은 ubuntu에 미리 설치되어 있습니다.
다음 명령을 사용하여 PyAudio를 설치합니다.
 $sudo apt install python-pyaudio
또한 다음 프로그램은 데이터에 음성 데이터를 저장합니다.
녹음 샘플.py
#インポート
import pyaudio

#puaudioオブジェクトの生成
p = pyaudio.PyAudio()

#一定時間録音して結果をstreamに格納
#引数は他ウェブサイトを参照
#ストリームの準備
stream = p.open(format=pyaudio.paInt16,
                channels=1,
                rate=44100,
                input=True,
                frames_per_buffer=1024)
#録音
data = stream.read(CHUNK)

#録音結果はバイトコードなので変換をかけて-1~1の数値の配列に
#numpyが入ってなければインストールして
import numpy as np
data=np.frombuffer(data, dtype="int16")/32768

React 정보


React는 대화형 사용자 인터페이스를 만들 수 있는 JavaScript library입니다.

환경 구조


1. Windows 시스템에서 노드js의 최신 버전을 설치합니다.
2. React 설치
  >npm install react --save
3. 다음 명령을 사용하여 항목 만들기
  >npx create-react-app my-app
4. ReactPlayer 설치
  >npm install react-player --save

설치 정보


React 측에서 표시되는 페이지를 생성합니다.
1. 설치 영역의 src 폴더 아래에 스크립트 쓰기
App.js
import React, { Component } from "react"; 
import "./App.css";
import ReactPlayer from "react-player"

class App extends Component {
  render() {
    // 動画のIDはランダムで出るようにしてみる
    var list = [
        "HgzGwKwLmgM",
        "2ZBtPf7FOoM",
        "vNhhAEupU4g",
        "fJ9rUzIMcZQ",
        "GugsCdLHm-Q",
        "-tJYN-eG1zk",
        "04854XqcfCY",
        "rY0WxgSXdEE",
        "kijpcUv-b8M",
        "a01QQZyl-_I",
        "rdvabdyZ7vU"
    ];
    var random = Math.floor(Math.random() * 10);
    console.log(list[random]);

    // 動画を表示する
    return <ReactPlayer url={"https://youtu.be/" + list[random]} playing />
  }
}

export default App;
2. 스크립트 실행
  >npm run start
3. 실행 결과
D:\temp\指パッチン >npm run start
> [email protected] start D:\temp\指パッチン
> react-scripts start

Compiled successfully!

You can now view hello-world in the browser.

  Local:            http://localhost:3000/
  On Your Network:  http://172.20.7.51:3000/

Note that the development build is not optimized.
To create a production build, use npm run build.
너무 좋아요.
유튜브를 화면에 삽입하는 웹 페이지를 시작할 수 있습니다.
브라우저를 열고 localhost:3000에 액세스합니다.
또한 유튜브의 동영상 ID 부분은 js를 통해 무작위로 변경할 수 있다.

설치 정보


Pytohon 측에서 설치할 때 소리 시작 브라우저에 응답해야 합니다.
설치할 때 사용하는 프로그램 라이브러리는 다음과 같다.
- PyAudio 마이크로 주변의 소리를 채취해 스트리밍 데이터를 만든다.
-NumPy PyAudio에서 만든 스트림 데이터를 수치 데이터로 변환합니다.
-SSelenium 브라우저를 시작하고 > 파일을 시작합니다.
- selenium을 사용하여 geckodriver FireFox를 조작합니다.
다음 소스 코드가 생성되었습니다.
app.py
import pyaudio
import numpy as np
from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
RECORD_SECONDS = 5
threshold = 0.8
path = "{ここに表示したいページのURL}"

binary = FirefoxBinary('/usr/bin/firefox')
binary.add_command_line_options('-headless')
driver = ""
isOpen = 0

def open_web(path):
    global driver
    global isOpen
    if isOpen == 0:
        driver = webdriver.Firefox(firefox_binary=binary)
        driver.get(path)
        isOpen = 1
    else:
        driver.quit()
        isOpen = 0

p = pyaudio.PyAudio()

stream = p.open(format=FORMAT,
                channels=CHANNELS,
                rate=RATE,
                input=True,
                frames_per_buffer=CHUNK)

print("* recording")

while True:
    data = stream.read(CHUNK)
    data=np.frombuffer(data, dtype="int16")/32768
    # 入力された音の大きさがthresholdで指定したしきい値を超えた場合、ブラウザを開くようにする。
    if data.max() > threshold:
        open_web(path)
임계값이 너무 낮으면 자주 반응한다
큰 소리에 어느 정도 반응할 수 있도록 조정해야 한다.

실패하다


PC 마이크로 어느 정도 큰 소리를 인식하면
selenium Firefox를 거쳐 일어서는 구조입니다.
또 로고를 관리해야 하기 때문에 손가락으로 초롱불을 켤 때마다
브라우저를 시작하거나 닫을 수 있습니다.
React 측에서 만든 페이지를 호출하면
손가락 등만 있으면 유튜브를 시작할 수 있다.
너무 좋아요.

감상

  • 하고 싶은 생각에서 어떻게 이룰 것인가를 고려한 것이기 때문에
    나는 움직이지 않을까 걱정된다.
    하지만 실행 환경을 조정해 이를 실현할 수 있는 방법을 강구하는 것이 좋다고 생각한다.
  • 파이톤 실행 환경에 대해 최초로 윈도 PC에 환경을 구축했지만 Visual Studio 등을 설치해야 한다.
    환경 구축이 어려워 PC에 LinuxOS를 넣어 구현하기로 했다.
  • 현재 원본 파일에서 마이크가 주운 소리의 크기를
    주위 사람들에게 손가락으로 가볍게 맞았는지 아닌지를 판정하다.
  • 손가락으로 가볍게 두드리기만 하면 브라우저가 자유롭게 일어설 수 있어 기쁘다.
  • 참조 정보 링크


    아래 사이트의 정보와 샘플 출처를 참고하게 해 주세요.
    사이트 축소판 그림
    PyAudio의 기본 비망록 2 음성 입력 출력 - 북야 비망록http://takeshid.hatenadiary.jp/entry/2016/01/10/153503
    파이톤으로 사운드 모니터링, 어느 정도 이상 음량 녹음-Qitahttps://qiita.com/mix_dvd/items/dc53926b83a9529876f7
    PyAudio Doction(영어)https://people.csail.mit.edu/hubert/pyaudio/docs/
    사이트 제목
    가능한 한 간단명료하게 설명하다.js 입문 - Qitahttps://qiita.com/rgbkids/items/8ec309d1bf5e203d2b19
    React 응용 프로그램에서 애니메이션과 음악 파일을 처리하기 위해 "react-player"- Qitahttps://qiita.com/reiji1020/items/a65d84980b67f13449e1 사용
    React 호스트 다운로드https://react-cn.github.io/react/downloads.html

    좋은 웹페이지 즐겨찾기