Commit 30964d7f authored by nivebaby's avatar nivebaby

frontend with django

parent d328cf97
This diff is collapsed.
"""
ASGI config for audiocheck project.
It exposes the ASGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/4.0/howto/deployment/asgi/
"""
import os
from django.core.asgi import get_asgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'audiocheck.settings')
application = get_asgi_application()
from django import forms
from django.apps import AppConfig
from django import forms
from audiocheck.models import Audio_store
class AudioForm(forms.ModelForm):
class Meta:
model=Audio_store
fields=['record']
\ No newline at end of file
from django.db import models
from django.apps import AppConfig
class Audio_store(models.Model):
record=models.FileField(upload_to='')
class Meta:
db_table='Audio_store'
\ No newline at end of file
"""
Django settings for audiocheck project.
Generated by 'django-admin startproject' using Django 4.0.4.
For more information on this file, see
https://docs.djangoproject.com/en/4.0/topics/settings/
For the full list of settings and their values, see
https://docs.djangoproject.com/en/4.0/ref/settings/
"""
from pathlib import Path
import os
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
PRODUCT_MODEL = 'Audio_store'
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/4.0/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'django-insecure-i!zl!#ao+%h^w*8rua7fd#*tc52yn4ak$#etwu%k7)p3khqwuu'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = []
# Application definition
INSTALLED_APPS = [
'audiocheck',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = 'audiocheck.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['templates'],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
WSGI_APPLICATION = 'audiocheck.wsgi.application'
# Database
# https://docs.djangoproject.com/en/4.0/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
# Password validation
# https://docs.djangoproject.com/en/4.0/ref/settings/#auth-password-validators
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
# Internationalization
# https://docs.djangoproject.com/en/4.0/topics/i18n/
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_TZ = True
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/4.0/howto/static-files/
STATIC_URL = 'static/'
# Default primary key field type
# https://docs.djangoproject.com/en/4.0/ref/settings/#default-auto-field
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
STATIC_URL = '/static/'
MEDIA_URL='/media/'
MEDIA_ROOT=os.path.join(BASE_DIR,'media')
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form action="audio" method = "post" enctype="multipart/form-data">
{% csrf_token %}
{{ form }}
<button type="submit">Upload</button>
</form>
</body>
</html>
\ No newline at end of file
from django.contrib import admin
from django.urls import path
from . import views
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
path('audio',views.Audio_store),
path('show',views.check),
path('result/',views.Audio_store)
]+ static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
from django.http import HttpResponse
from django.shortcuts import render
import wave as wv
from email.mime import audio
from typing import IO, List
from django.db import models
from unicodedata import numeric
from django.http import HttpResponse
from django.shortcuts import render
import joblib
import numpy as np
import pickle
from django.db import models
import librosa
from pyparsing import replaceWith
from requests import request
import soundfile
import os,glob,pickle
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.neural_network import MLPClassifier
from django.core.files.storage import FileSystemStorage
from django.core.files.storage import default_storage
from django.core.files.base import ContentFile
import sqlite3
from .forms import AudioForm
def extract_feature(file_name,mfcc,chroma,mel):
with soundfile.SoundFile(file_name) as sound_file:
X=sound_file.read(dtype='float32')
sample_rate=sound_file.samplerate
if chroma:
stft=np.abs(librosa.stft(X))
result=np.array([])
if mfcc:
mfccs=np.mean(librosa.feature.mfcc(y=X,sr=sample_rate,n_mfcc=40).T,axis=0)
result=np.hstack((result,mfccs))
if chroma:
chroma=np.mean(librosa.feature.chroma_stft(S=stft,sr=sample_rate).T,axis=0)
result=np.hstack((result,chroma))
if mel:
mel=np.mean(librosa.feature.melspectrogram(X,sr=sample_rate).T,axis=0)
resutl=np.hstack((result,mel))
return result
def display_emotion(request):
# print(request)
print("hello")
audio_file=request.GET.get('color','')
print(audio_file)
return render(request, 'show.html', {'one' : audio_file})
def Audio_store(request):
if request.method == 'POST':
form = AudioForm(request.POST,request.FILES or None)
if form.is_valid():
form.save()
return HttpResponse('successfully uploaded')
else:
form =AudioForm()
return render(request, 'aud.htm', {'form' : form})
def check(request):
# Create a SQL connection to our SQLite database
con = sqlite3.connect("db.sqlite3")
cur = con.cursor()
cur.execute('SELECT record FROM Audio_store;')
# The result of a "cursor.execute" can be iterated over by row
rows=cur.fetchall()
result_1d = [row[0] for row in rows]
return render(request, 'show.html', {'row' : result_1d})
# lis=[]
# for row in rows:
# lis.append(row)
# return render(request, 'show.htm', {'row' : rows})
# Be sure to close the connection
con.close()
\ No newline at end of file
"""
WSGI config for audiocheck project.
It exposes the WSGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/4.0/howto/deployment/wsgi/
"""
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'audiocheck.settings')
application = get_wsgi_application()
#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys
def main():
"""Run administrative tasks."""
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'audiocheck.settings')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
if __name__ == '__main__':
main()
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form action="audio" method = "post" enctype="multipart/form-data">
{% csrf_token %}
{{ form }}
<button type="submit">Upload</button>
</form>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
{{one}}
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script type="text/javascript">
function display()
{
audiodisplay=document.querySelector('input[name=color]:checked').value;
document.querySelector("#selecteraudioname").textContent='The checked radio value is' +audiodisplay;
}
</script>
</head>
<body>
<form action="{% url 'display_emotion' %}" enctype="multipart/form-data">
{% csrf_token %}
{% for student in row %}
<input type="radio" value="{{student}}" id="css" name="color" >
{{student}}
<br>
{% endfor %}
<input type="submit" value="Click" onclick="display()" />
<b style="color:green" id="selecteraudioname"></b>
{{one}}
</form>
</body>
</html>
\ No newline at end of file
"""
ASGI config for audiocheck project.
It exposes the ASGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/4.0/howto/deployment/asgi/
"""
import os
from django.core.asgi import get_asgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'audiocheck.settings')
application = get_asgi_application()
from django import forms
from django.apps import AppConfig
from django import forms
from audiocheck.models import Audio_store
class AudioForm(forms.ModelForm):
class Meta:
model=Audio_store
fields=['record']
\ No newline at end of file
from django.db import models
from django.apps import AppConfig
class Audio_store(models.Model):
record=models.FileField(upload_to='')
class Meta:
db_table='Audio_store'
\ No newline at end of file
"""
Django settings for audiocheck project.
Generated by 'django-admin startproject' using Django 4.0.4.
For more information on this file, see
https://docs.djangoproject.com/en/4.0/topics/settings/
For the full list of settings and their values, see
https://docs.djangoproject.com/en/4.0/ref/settings/
"""
from pathlib import Path
import os
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
PRODUCT_MODEL = 'Audio_store'
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/4.0/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'django-insecure-i!zl!#ao+%h^w*8rua7fd#*tc52yn4ak$#etwu%k7)p3khqwuu'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = []
# Application definition
INSTALLED_APPS = [
'audiocheck',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = 'audiocheck.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['templates'],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
WSGI_APPLICATION = 'audiocheck.wsgi.application'
# Database
# https://docs.djangoproject.com/en/4.0/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
# Password validation
# https://docs.djangoproject.com/en/4.0/ref/settings/#auth-password-validators
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
# Internationalization
# https://docs.djangoproject.com/en/4.0/topics/i18n/
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_TZ = True
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/4.0/howto/static-files/
STATIC_URL = 'static/'
# Default primary key field type
# https://docs.djangoproject.com/en/4.0/ref/settings/#default-auto-field
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
STATIC_URL = '/static/'
MEDIA_URL='/media/'
MEDIA_ROOT=os.path.join(BASE_DIR,'media')
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form action="audio" method = "post" enctype="multipart/form-data">
{% csrf_token %}
{{ form }}
<button type="submit">Upload</button>
</form>
</body>
</html>
\ No newline at end of file
from django.contrib import admin
from django.urls import path
from . import views
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
path('audio',views.Audio_store),
path('show',views.check),
path('result/',views.Audio_store)
]+ static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
from django.http import HttpResponse
from django.shortcuts import render
import wave as wv
from email.mime import audio
from typing import IO, List
from django.db import models
from unicodedata import numeric
from django.http import HttpResponse
from django.shortcuts import render
import joblib
import numpy as np
import pickle
from django.db import models
import librosa
from pyparsing import replaceWith
from requests import request
import soundfile
import os,glob,pickle
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.neural_network import MLPClassifier
from django.core.files.storage import FileSystemStorage
from django.core.files.storage import default_storage
from django.core.files.base import ContentFile
import sqlite3
from .forms import AudioForm
def extract_feature(file_name,mfcc,chroma,mel):
with soundfile.SoundFile(file_name) as sound_file:
X=sound_file.read(dtype='float32')
sample_rate=sound_file.samplerate
if chroma:
stft=np.abs(librosa.stft(X))
result=np.array([])
if mfcc:
mfccs=np.mean(librosa.feature.mfcc(y=X,sr=sample_rate,n_mfcc=40).T,axis=0)
result=np.hstack((result,mfccs))
if chroma:
chroma=np.mean(librosa.feature.chroma_stft(S=stft,sr=sample_rate).T,axis=0)
result=np.hstack((result,chroma))
if mel:
mel=np.mean(librosa.feature.melspectrogram(X,sr=sample_rate).T,axis=0)
resutl=np.hstack((result,mel))
return result
def display_emotion(request):
# print(request)
print("hello")
audio_file=request.GET.get('color','')
print(audio_file)
return render(request, 'show.html', {'one' : audio_file})
def Audio_store(request):
if request.method == 'POST':
form = AudioForm(request.POST,request.FILES or None)
if form.is_valid():
form.save()
return HttpResponse('successfully uploaded')
else:
form =AudioForm()
return render(request, 'aud.htm', {'form' : form})
def check(request):
# Create a SQL connection to our SQLite database
con = sqlite3.connect("db.sqlite3")
cur = con.cursor()
cur.execute('SELECT record FROM Audio_store;')
# The result of a "cursor.execute" can be iterated over by row
rows=cur.fetchall()
result_1d = [row[0] for row in rows]
return render(request, 'show.html', {'row' : result_1d})
# lis=[]
# for row in rows:
# lis.append(row)
# return render(request, 'show.htm', {'row' : rows})
# Be sure to close the connection
con.close()
\ No newline at end of file
"""
WSGI config for audiocheck project.
It exposes the WSGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/4.0/howto/deployment/wsgi/
"""
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'audiocheck.settings')
application = get_wsgi_application()
#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys
def main():
"""Run administrative tasks."""
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'audiocheck.settings')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
if __name__ == '__main__':
main()
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form action="audio" method = "post" enctype="multipart/form-data">
{% csrf_token %}
{{ form }}
<button type="submit">Upload</button>
</form>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
{{one}}
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script type="text/javascript">
function display()
{
audiodisplay=document.querySelector('input[name=color]:checked').value;
document.querySelector("#selecteraudioname").textContent='The checked radio value is' +audiodisplay;
}
</script>
</head>
<body>
<form action="{% url 'display_emotion' %}" enctype="multipart/form-data">
{% csrf_token %}
{% for student in row %}
<input type="radio" value="{{student}}" id="css" name="color" >
{{student}}
<br>
{% endfor %}
<input type="submit" value="Click" onclick="display()" />
<b style="color:green" id="selecteraudioname"></b>
{{one}}
</form>
</body>
</html>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment