File size: 2,361 Bytes
9fd7148
 
 
 
f84b9d2
9fd7148
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4d7f23f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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