如何从超链接或网页界面运行一个.py文件?

问题描述 投票:5回答:1

我是python中的web界面的新手。我有一个应用程序,将语音转换为文本,然后得到情感分析。

import json
from os.path import join, dirname
from ibm_watson import SpeechToTextV1
from ibm_watson.websocket import RecognizeCallback, AudioSource
import threading
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator
import pandas as pd
authenticator = IAMAuthenticator('rXXX')
service = SpeechToTextV1(authenticator=authenticator)
service.set_service_url('https://api.us-east.speech-to-text.watson.cloud.ibm.com')

models = service.list_models().get_result()
#print(json.dumps(models, indent=2))

model = service.get_model('en-US_BroadbandModel').get_result()
#print(json.dumps(model, indent=2))

# This is the name of the file u need to change below
with open(join(dirname('__file__'), 'Swearing_Service.wav'),
          'rb') as audio_file:
#    print(json.dumps(
    output = service.recognize(
    audio=audio_file,
    speaker_labels=True,
    content_type='audio/wav',
    #timestamps=True,
    #word_confidence=True,
    model='en-US_NarrowbandModel',
    continuous=True).get_result(),
    indent=2
df0 = pd.DataFrame([i for elts in output for alts in elts['results'] for i in alts['alternatives']])
list(df0.columns) 
list(df1.columns) 
df0 = df0.drop(["timestamps"], axis=1)
df1 = df1.drop(["final"], axis=1)
df1 = df1.drop(['confidence'],axis=1)
test3 = pd.concat([df0, df1], axis=1)
#sentiment
transcript = test3['transcript']
transcript = transcript.dropna()
from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer
analyzer = SentimentIntensityAnalyzer()
text = transcript
scores = []
for txt in text:
    vs = analyzer.polarity_scores(txt)
    scores.append(vs)
data = pd.DataFrame(text, columns= ['Text'])
data2 = pd.DataFrame(scores)
final_dataset= pd.concat([data,data2], axis=1)
test4 = pd.concat([test3,final_dataset], axis=1)
test4 = test4.drop(['Text'],axis=1)
test4.rename(columns={'neg':'Negative'}, 
                 inplace=True)
test4.rename(columns={'pos':'Positive'}, 
                 inplace=True)
test4.rename(columns={'neu':'Neutral'}, 
                 inplace=True)

# This is the name of the output csv file u need to change below
test4.to_csv("sentiment.csv")

我想创建一个web界面,让人们在上传wav文件后,只需点击一个按钮就能得到csv输出,而不是运行代码。 我怎么做呢?

python flask cgi shinydashboard
1个回答
0
投票

这是一个一般的流程。

  1. 你将在Flask应用中定义一个API端点。例如,你会在Flask应用中定义一个API端点。/speech-to-text
  2. 在点击按钮时,您将发送一个AJAX请求(通过JavaScriptJQuery),其中包括 wav 文件数据到此端点
  3. 在Flask应用中,您将检索 "语音数据 "并将其转换为 csv 通过运行你的脚本(在你的脚本中为此创建一个函数)来运行文件。
  4. 发出回复 csv 数据到您的AJAX请求,这将在您的JavaScript脚本中被接收。
  5. 用户将能够下载这个文件。

相关链接。

© www.soinside.com 2019 - 2024. All rights reserved.