[Python] Fichiers wav POST avec requêtes [POST]

en premier

J'ai téléchargé l'API de reconnaissance vocale sur Heroku. Comment puis-je publier un fichier wav et obtenir également le destinataire? Puisqu'il y a peu de documents et d'essais et d'erreurs, je vais le laisser comme note de service.

La clé, l'identifiant d'utilisateur, le pass, etc. sont des mesures de sécurité.

Du côté serveur

from flask import Flask, request, abort
import soundfile as sf
from io import BytesIO
import os

app = Flask(__name__)

@app.route("/webapp", methods=['POST'])
def webapp():
    webaccesskey = request.headers["KEY"]
    webaccesspassword = request.headers["PWD"]
    if webaccesskey == "ok" and webaccesspassword == "foapkun":
        try:
            if request.args.get("TYPE") == "wav_message":
                user_id = request.args.get("USERID")
                key = request.args.get("KEY")
                valid = checker(user_id, key)
                if valid == True:
                    wavdata = request.files["file"].stream
                    audio_data, samplerate = sf.read(BytesIO(wavdata.read()))
                    #Le processus que vous souhaitez mettre ici
        except:
            abort(400)
    else:
        abort(400)
    return 'OK'

def checker(user_id, key):
    valid = False
    if user_id == "user_id":
        if key == "key":
            valid = True
    return valid


if __name__ == "__main__":
    port = int(os.getenv("PORT", 5000))
    app.run(host="0.0.0.0", port=port)

côté demandes

import requests

class Message:
    def __init__(self):
        self.accessURL = "http://localhost:5000/webapp"
        self.accesskey = "ok"
        self.accessPASSWORD = "qiita"

    def put_wav(self, user_id, key):
        self.headers = {"KEY": self.accesskey, "PWD": self.accessPASSWORD}
        self.payload = {"TYPE": "wav_message", "USERID": user_id, "KEY": key}
        fileName = 'test.wav'
        files = {'file': open(fileName, 'rb')}
        r = requests.post(self.accessURL, headers=self.headers, params=self.payload, files=files)
        print(r.text)

if __name__ == "__main__":
    message = Message()
    message.put_wav(user_id="user_id", key="key")

Recommended Posts

[Python] Fichiers wav POST avec requêtes [POST]
Réessayer avec des requêtes python
Lire les fichiers wav avec uniquement le package standard Python
POST json avec le script Python 3
Publiez sur Slack avec Python 3
Tri des fichiers image avec Python (2)
Trier de gros fichiers avec python
Tri des fichiers image avec Python (3)
Tri des fichiers image avec Python
Intégrez des fichiers PDF avec Python
Lire des fichiers .txt avec Python
Extraire récursivement des fichiers zip avec python
Manipulation des fichiers EAGLE .brd avec Python
Quine Post avec l'API Qiita (Python)
Obtenez la météo avec les requêtes Python
Obtenez la météo avec les requêtes Python 2
Décrypter les fichiers cryptés avec OpenSSL avec Python 3
Conversion MP3 → WAV avec Python
Publiez plusieurs images Twitter avec python
Gérer les fichiers Excel CSV avec Python
Lire des fichiers en parallèle avec Python
Publiez facilement sur Twitter avec Python 3
Envoyer des données multipart / form avec des requêtes python
[AWS] Utilisation de fichiers ini avec Lambda [Python]
Lire un fichier audio à partir de Python avec interruption
POSTER diversement avec Python et recevoir avec Flask
Décrypter les fichiers cryptés avec openssl depuis python avec openssl
Lire et écrire des fichiers JSON avec Python
Télécharger des fichiers sur le Web avec Python
[Easy Python] Lecture de fichiers Excel avec openpyxl
[Easy Python] Lecture de fichiers Excel avec des pandas
Appelez APIGateWay avec APIKey dans les requêtes python
Transcrire des fichiers WAV avec l'API Cloud Speech
Statistiques avec python
Python avec Go
Twilio avec Python
Intégrer avec Python
Jouez avec 2016-Python
AES256 avec python
Testé avec Python
python commence par ()
avec syntaxe (Python)
Bingo avec python
Zundokokiyoshi avec python
Excel avec Python
Micro-ordinateur avec Python
Cast avec python
Publiez le titre en plein essor de YouTube sur Twitter avec python3
Gérer les fichiers zip avec des noms de fichiers japonais dans Python 3
Faites glisser et déposez un fichier local avec Selenium (Python)
Encodage de caractères lors du traitement de fichiers en Python 3
Télécharger des fichiers sur Google Drive avec Lambda (Python)
La lecture et l'écriture s'adaptent aux fichiers avec Python (mémo)
Convertissez plusieurs fichiers proto à la fois avec python
Zip, décompressez avec python