Amulya M
m1
4d7f23f
Raw History Blame Contribute Delete
2.36 kB
import numpy as np
import pandas as pd
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
# Speech to Text
api_key = '9283c8042f454c4d8638fca0484512ab'
endpoint = 'https://centralindia.api.cognitive.microsoft.com/sts/v1.0/issuetoken'
import azure.cognitiveservices.speech as speechsdk
# To ignore Warnings
import warnings
data = pd.read_csv('hate_speech_detection.csv')
X = data['raw_data']
y = data['class']
cv = CountVectorizer()
X_ = cv.fit_transform(X)
X_ = X_.toarray()
X_train, X_test, y_train, y_test = train_test_split(X_, y, test_size=0.4, random_state=True)
model = LogisticRegression(max_iter=1000)
model.fit(X_train,y_train)
y_pred = model.predict(X_test)
def detect_hate_speech(sample):
vect = cv.transform(sample).toarray()
pred_prob = np.max(model.predict_proba(vect))
pred = model.predict(vect)
return pred, pred_prob
def detect(sample):
hatespeech = detect_hate_speech(sample)
mp = "Try again"
if hatespeech[0] == 0:
mp = "Hate Speech Detected"
elif hatespeech[0] == 1:
mp = "Offensive Language Detected"
elif hatespeech[0] == 2:
mp = "NO Hate Speech Detected"
return mp, hatespeech[1], hatespeech[0]
def voice_file(file):
speech_config = speechsdk.SpeechConfig(subscription=api_key, endpoint=endpoint)
speech_config.speech_recognition_language = "en-US"
speech_config.set_profanity(speechsdk.ProfanityOption.Raw)
audio_config = speechsdk.audio.AudioConfig(filename=file)
speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config, audio_config=audio_config)
speech_recognition_result = speech_recognizer.recognize_once_async().get()
if speech_recognition_result.reason == speechsdk.ResultReason.RecognizedSpeech:
print(speech_recognition_result.text)
return speech_recognition_result.text
elif speech_recognition_result.text == "":
return "$empty$"
elif speech_recognition_result.reason == speechsdk.ResultReason.NoMatch:
return speech_recognition_result.no_match_details
elif speech_recognition_result.reason == speechsdk.ResultReason.Canceled:
cancellation_details = speech_recognition_result.cancellation_details
return cancellation_details.reason