├── Procfile ├── README.md ├── conversor ├── __init__.py ├── __pycache__ │ ├── __init__.cpython-36.pyc │ ├── admin.cpython-36.pyc │ ├── forms.cpython-36.pyc │ ├── models.cpython-36.pyc │ ├── serializers.cpython-36.pyc │ ├── urls.cpython-36.pyc │ └── views.cpython-36.pyc ├── admin.py ├── apps.py ├── forms.py ├── media │ └── asdsa.mp3 ├── migrations │ ├── 0001_initial.py │ ├── 0002_auto_20190705_1406.py │ ├── 0003_auto_20190705_1416.py │ ├── 0004_audio_idioma_do_texto.py │ ├── 0005_auto_20190705_1447.py │ ├── 0006_auto_20190705_1454.py │ ├── 0007_auto_20190705_1502.py │ ├── 0008_auto_20190705_1514.py │ ├── 0009_auto_20190707_2127.py │ ├── 0010_auto_20190708_0022.py │ ├── 0011_auto_20190708_0042.py │ ├── 0012_auto_20190708_0932.py │ ├── 0013_auto_20190708_2113.py │ ├── 0014_auto_20190716_2110.py │ ├── 0015_auto_20190716_2117.py │ ├── __init__.py │ └── __pycache__ │ │ ├── 0001_initial.cpython-36.pyc │ │ ├── 0002_auto_20190705_1406.cpython-36.pyc │ │ ├── 0003_auto_20190705_1416.cpython-36.pyc │ │ ├── 0004_audio_idioma_do_texto.cpython-36.pyc │ │ ├── 0005_auto_20190705_1447.cpython-36.pyc │ │ ├── 0006_auto_20190705_1454.cpython-36.pyc │ │ ├── 0007_auto_20190705_1502.cpython-36.pyc │ │ ├── 0008_auto_20190705_1514.cpython-36.pyc │ │ ├── 0009_auto_20190707_2127.cpython-36.pyc │ │ ├── 0010_auto_20190708_0022.cpython-36.pyc │ │ ├── 0011_auto_20190708_0042.cpython-36.pyc │ │ ├── 0012_auto_20190708_0932.cpython-36.pyc │ │ ├── 0013_auto_20190708_2113.cpython-36.pyc │ │ ├── 0014_auto_20190716_2110.cpython-36.pyc │ │ ├── 0015_auto_20190716_2117.cpython-36.pyc │ │ └── __init__.cpython-36.pyc ├── models.py ├── serializers.py ├── static │ ├── css │ │ └── style.css │ └── icone.png ├── templates │ ├── base.html │ └── conversor │ │ ├── audio.html │ │ └── index.html ├── tests.py ├── urls.py └── views.py ├── conversortts ├── __init__.py ├── __pycache__ │ ├── __init__.cpython-36.pyc │ ├── settings.cpython-36.pyc │ ├── urls.cpython-36.pyc │ └── wsgi.cpython-36.pyc ├── settings.py ├── urls.py └── wsgi.py ├── db.sqlite3 ├── debug.log ├── manage.py └── requirements.txt /Procfile: -------------------------------------------------------------------------------- 1 | web: gunicorn conversortts.wsgi 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Conversor TTS 2 | 3 | # Projeto em fase inicial. 4 | 5 | Uma aplicação web feita em Django que gera arquivos de áudio baseados no texto digitado. 6 | 7 | Tome cuidado ao escolher o nome do arquivo, pois o nome deve respeitar as regras do sistema operacional. Caso contrário resultará em erro. 8 | 9 | Biblioteca utilizada para gerar os áudios: https://github.com/pndurette/gTTS 10 | -------------------------------------------------------------------------------- /conversor/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/raphaelgibson/conversortts/ec6799d33f60235ecb5298408735264e5344b2b8/conversor/__init__.py -------------------------------------------------------------------------------- /conversor/__pycache__/__init__.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/raphaelgibson/conversortts/ec6799d33f60235ecb5298408735264e5344b2b8/conversor/__pycache__/__init__.cpython-36.pyc -------------------------------------------------------------------------------- /conversor/__pycache__/admin.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/raphaelgibson/conversortts/ec6799d33f60235ecb5298408735264e5344b2b8/conversor/__pycache__/admin.cpython-36.pyc -------------------------------------------------------------------------------- /conversor/__pycache__/forms.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/raphaelgibson/conversortts/ec6799d33f60235ecb5298408735264e5344b2b8/conversor/__pycache__/forms.cpython-36.pyc -------------------------------------------------------------------------------- /conversor/__pycache__/models.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/raphaelgibson/conversortts/ec6799d33f60235ecb5298408735264e5344b2b8/conversor/__pycache__/models.cpython-36.pyc -------------------------------------------------------------------------------- /conversor/__pycache__/serializers.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/raphaelgibson/conversortts/ec6799d33f60235ecb5298408735264e5344b2b8/conversor/__pycache__/serializers.cpython-36.pyc -------------------------------------------------------------------------------- /conversor/__pycache__/urls.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/raphaelgibson/conversortts/ec6799d33f60235ecb5298408735264e5344b2b8/conversor/__pycache__/urls.cpython-36.pyc -------------------------------------------------------------------------------- /conversor/__pycache__/views.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/raphaelgibson/conversortts/ec6799d33f60235ecb5298408735264e5344b2b8/conversor/__pycache__/views.cpython-36.pyc -------------------------------------------------------------------------------- /conversor/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /conversor/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class ConversorConfig(AppConfig): 5 | name = 'conversor' 6 | -------------------------------------------------------------------------------- /conversor/forms.py: -------------------------------------------------------------------------------- 1 | from django import forms 2 | from .models import Audio 3 | 4 | class AudioForm(forms.ModelForm): 5 | 6 | class Meta: 7 | model = Audio 8 | fields = '__all__' 9 | -------------------------------------------------------------------------------- /conversor/media/asdsa.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/raphaelgibson/conversortts/ec6799d33f60235ecb5298408735264e5344b2b8/conversor/media/asdsa.mp3 -------------------------------------------------------------------------------- /conversor/migrations/0001_initial.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.2.2 on 2019-07-02 00:18 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | initial = True 9 | 10 | dependencies = [ 11 | ] 12 | 13 | operations = [ 14 | migrations.CreateModel( 15 | name='Audio', 16 | fields=[ 17 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 18 | ('nome', models.CharField(max_length=255)), 19 | ('texto', models.TextField()), 20 | ], 21 | ), 22 | ] 23 | -------------------------------------------------------------------------------- /conversor/migrations/0002_auto_20190705_1406.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.2.3 on 2019-07-05 17:06 2 | 3 | from django.db import migrations 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('conversor', '0001_initial'), 10 | ] 11 | 12 | operations = [ 13 | migrations.RenameField( 14 | model_name='audio', 15 | old_name='nome', 16 | new_name='nome_do_arquivo', 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /conversor/migrations/0003_auto_20190705_1416.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.2.3 on 2019-07-05 17:16 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('conversor', '0002_auto_20190705_1406'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AlterField( 14 | model_name='audio', 15 | name='nome_do_arquivo', 16 | field=models.CharField(help_text='.mp3', max_length=255), 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /conversor/migrations/0004_audio_idioma_do_texto.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.2.3 on 2019-07-05 17:28 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('conversor', '0003_auto_20190705_1416'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AddField( 14 | model_name='audio', 15 | name='idioma_do_texto', 16 | field=models.CharField(choices=[('1', 'Português'), ('2', 'English')], default=('1', 'Português'), max_length=15), 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /conversor/migrations/0005_auto_20190705_1447.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.2.3 on 2019-07-05 17:47 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('conversor', '0004_audio_idioma_do_texto'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AlterField( 14 | model_name='audio', 15 | name='idioma_do_texto', 16 | field=models.CharField(choices=[('pt-br', 'Português'), ('en-us', 'English')], default=('pt-br', 'Português'), max_length=15), 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /conversor/migrations/0006_auto_20190705_1454.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.2.3 on 2019-07-05 17:54 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('conversor', '0005_auto_20190705_1447'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AlterField( 14 | model_name='audio', 15 | name='idioma_do_texto', 16 | field=models.CharField(choices=[('pt-br', 'Português'), ('en-us', 'English'), ('es', 'Espanol')], default=('pt-br', 'Português'), max_length=15), 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /conversor/migrations/0007_auto_20190705_1502.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.2.3 on 2019-07-05 18:02 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('conversor', '0006_auto_20190705_1454'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AlterField( 14 | model_name='audio', 15 | name='idioma_do_texto', 16 | field=models.CharField(choices=[('pt-br', 'Português (BR)'), ('pt-pt', 'Português (PT)'), ('en-us', 'Inglês (EUA)'), ('es', 'Espanhol')], default=('pt-br', 'Português'), max_length=15), 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /conversor/migrations/0008_auto_20190705_1514.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.2.3 on 2019-07-05 18:14 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('conversor', '0007_auto_20190705_1502'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AlterField( 14 | model_name='audio', 15 | name='nome_do_arquivo', 16 | field=models.CharField(max_length=255), 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /conversor/migrations/0009_auto_20190707_2127.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.2.3 on 2019-07-08 00:27 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('conversor', '0008_auto_20190705_1514'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AlterField( 14 | model_name='audio', 15 | name='idioma_do_texto', 16 | field=models.CharField(choices=[('de', 'Alemão'), ('ca', 'Catalão'), ('zn-cn', 'Chinês'), ('ko', 'Coreano'), ('es-es', 'Espanhol'), ('fr-fr', 'Francês'), ('en-ca', 'Inglês (Canadá)'), ('en-us', 'Inglês (EUA)'), ('en-uk', 'Inglês (Reino Unido)'), ('ja', 'Japonês'), ('la', 'Latim'), ('pt-br', 'Português (BR)'), ('pt-pt', 'Português (PT)'), ('ru', 'Russo')], default=('pt-br', 'Português'), max_length=20), 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /conversor/migrations/0010_auto_20190708_0022.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.2.3 on 2019-07-08 03:22 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('conversor', '0009_auto_20190707_2127'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AlterField( 14 | model_name='audio', 15 | name='idioma_do_texto', 16 | field=models.CharField(choices=[('de', 'Alemão'), ('ca', 'Catalão'), ('zn-cn', 'Chinês'), ('ko', 'Coreano'), ('es-es', 'Espanhol'), ('fr-fr', 'Francês'), ('en-ca', 'Inglês (Canadá)'), ('en-us', 'Inglês (EUA)'), ('en-uk', 'Inglês (Reino Unido)'), ('ja', 'Japonês'), ('la', 'Latim'), ('pt-br', 'Português (BR)'), ('pt-pt', 'Português (PT)'), ('ru', 'Russo')], default=('pt-br', 'Português'), max_length=15), 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /conversor/migrations/0011_auto_20190708_0042.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.2.3 on 2019-07-08 03:42 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('conversor', '0010_auto_20190708_0022'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AlterField( 14 | model_name='audio', 15 | name='idioma_do_texto', 16 | field=models.CharField(choices=[('de', 'Alemão'), ('ca', 'Catalão'), ('zn-cn', 'Chinês'), ('ko', 'Coreano'), ('es-es', 'Espanhol'), ('fr-fr', 'Francês'), ('en-ca', 'Inglês (CAN)'), ('en-us', 'Inglês (EUA)'), ('en-uk', 'Inglês (UK)'), ('ja', 'Japonês'), ('la', 'Latim'), ('pt-br', 'Português (BR)'), ('pt-pt', 'Português (PT)'), ('ru', 'Russo')], default=('pt-br', 'Português'), max_length=255), 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /conversor/migrations/0012_auto_20190708_0932.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.2.3 on 2019-07-08 12:32 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('conversor', '0011_auto_20190708_0042'), 10 | ] 11 | 12 | operations = [ 13 | migrations.AlterField( 14 | model_name='audio', 15 | name='idioma_do_texto', 16 | field=models.CharField(choices=[('de', 'Alemão'), ('ca', 'Catalão'), ('zn-cn', 'Chinês'), ('ko', 'Coreano'), ('es-es', 'Espanhol'), ('fr-fr', 'Francês'), ('en-ca', 'Inglês (Canadá)'), ('en-us', 'Inglês (EUA)'), ('en-uk', 'Inglês (Reino Unido)'), ('ja', 'Japonês'), ('la', 'Latim'), ('pt-br', 'Português (BR)'), ('pt-pt', 'Português (PT)'), ('ru', 'Russo')], default=('pt-br', 'Português'), max_length=255), 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /conversor/migrations/0013_auto_20190708_2113.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.2.3 on 2019-07-09 00:13 2 | 3 | from django.db import migrations 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('conversor', '0012_auto_20190708_0932'), 10 | ] 11 | 12 | operations = [ 13 | migrations.RenameField( 14 | model_name='audio', 15 | old_name='idioma_do_texto', 16 | new_name='idioma', 17 | ), 18 | ] 19 | -------------------------------------------------------------------------------- /conversor/migrations/0014_auto_20190716_2110.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.2.3 on 2019-07-17 00:10 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('conversor', '0013_auto_20190708_2113'), 10 | ] 11 | 12 | operations = [ 13 | migrations.RemoveField( 14 | model_name='audio', 15 | name='nome_do_arquivo', 16 | ), 17 | migrations.AddField( 18 | model_name='audio', 19 | name='nome', 20 | field=models.CharField(db_column='Nome do arquivo', default='', help_text='Não utilize acento no nome do arquivo.', max_length=255), 21 | ), 22 | ] 23 | -------------------------------------------------------------------------------- /conversor/migrations/0015_auto_20190716_2117.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 2.2.3 on 2019-07-17 00:17 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | dependencies = [ 9 | ('conversor', '0014_auto_20190716_2110'), 10 | ] 11 | 12 | operations = [ 13 | migrations.RemoveField( 14 | model_name='audio', 15 | name='nome', 16 | ), 17 | migrations.AddField( 18 | model_name='audio', 19 | name='nome_do_arquivo', 20 | field=models.CharField(default='', help_text='Não utilize acento no nome do arquivo.', max_length=255), 21 | preserve_default=False, 22 | ), 23 | ] 24 | -------------------------------------------------------------------------------- /conversor/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/raphaelgibson/conversortts/ec6799d33f60235ecb5298408735264e5344b2b8/conversor/migrations/__init__.py -------------------------------------------------------------------------------- /conversor/migrations/__pycache__/0001_initial.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/raphaelgibson/conversortts/ec6799d33f60235ecb5298408735264e5344b2b8/conversor/migrations/__pycache__/0001_initial.cpython-36.pyc -------------------------------------------------------------------------------- /conversor/migrations/__pycache__/0002_auto_20190705_1406.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/raphaelgibson/conversortts/ec6799d33f60235ecb5298408735264e5344b2b8/conversor/migrations/__pycache__/0002_auto_20190705_1406.cpython-36.pyc -------------------------------------------------------------------------------- /conversor/migrations/__pycache__/0003_auto_20190705_1416.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/raphaelgibson/conversortts/ec6799d33f60235ecb5298408735264e5344b2b8/conversor/migrations/__pycache__/0003_auto_20190705_1416.cpython-36.pyc -------------------------------------------------------------------------------- /conversor/migrations/__pycache__/0004_audio_idioma_do_texto.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/raphaelgibson/conversortts/ec6799d33f60235ecb5298408735264e5344b2b8/conversor/migrations/__pycache__/0004_audio_idioma_do_texto.cpython-36.pyc -------------------------------------------------------------------------------- /conversor/migrations/__pycache__/0005_auto_20190705_1447.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/raphaelgibson/conversortts/ec6799d33f60235ecb5298408735264e5344b2b8/conversor/migrations/__pycache__/0005_auto_20190705_1447.cpython-36.pyc -------------------------------------------------------------------------------- /conversor/migrations/__pycache__/0006_auto_20190705_1454.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/raphaelgibson/conversortts/ec6799d33f60235ecb5298408735264e5344b2b8/conversor/migrations/__pycache__/0006_auto_20190705_1454.cpython-36.pyc -------------------------------------------------------------------------------- /conversor/migrations/__pycache__/0007_auto_20190705_1502.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/raphaelgibson/conversortts/ec6799d33f60235ecb5298408735264e5344b2b8/conversor/migrations/__pycache__/0007_auto_20190705_1502.cpython-36.pyc -------------------------------------------------------------------------------- /conversor/migrations/__pycache__/0008_auto_20190705_1514.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/raphaelgibson/conversortts/ec6799d33f60235ecb5298408735264e5344b2b8/conversor/migrations/__pycache__/0008_auto_20190705_1514.cpython-36.pyc -------------------------------------------------------------------------------- /conversor/migrations/__pycache__/0009_auto_20190707_2127.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/raphaelgibson/conversortts/ec6799d33f60235ecb5298408735264e5344b2b8/conversor/migrations/__pycache__/0009_auto_20190707_2127.cpython-36.pyc -------------------------------------------------------------------------------- /conversor/migrations/__pycache__/0010_auto_20190708_0022.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/raphaelgibson/conversortts/ec6799d33f60235ecb5298408735264e5344b2b8/conversor/migrations/__pycache__/0010_auto_20190708_0022.cpython-36.pyc -------------------------------------------------------------------------------- /conversor/migrations/__pycache__/0011_auto_20190708_0042.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/raphaelgibson/conversortts/ec6799d33f60235ecb5298408735264e5344b2b8/conversor/migrations/__pycache__/0011_auto_20190708_0042.cpython-36.pyc -------------------------------------------------------------------------------- /conversor/migrations/__pycache__/0012_auto_20190708_0932.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/raphaelgibson/conversortts/ec6799d33f60235ecb5298408735264e5344b2b8/conversor/migrations/__pycache__/0012_auto_20190708_0932.cpython-36.pyc -------------------------------------------------------------------------------- /conversor/migrations/__pycache__/0013_auto_20190708_2113.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/raphaelgibson/conversortts/ec6799d33f60235ecb5298408735264e5344b2b8/conversor/migrations/__pycache__/0013_auto_20190708_2113.cpython-36.pyc -------------------------------------------------------------------------------- /conversor/migrations/__pycache__/0014_auto_20190716_2110.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/raphaelgibson/conversortts/ec6799d33f60235ecb5298408735264e5344b2b8/conversor/migrations/__pycache__/0014_auto_20190716_2110.cpython-36.pyc -------------------------------------------------------------------------------- /conversor/migrations/__pycache__/0015_auto_20190716_2117.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/raphaelgibson/conversortts/ec6799d33f60235ecb5298408735264e5344b2b8/conversor/migrations/__pycache__/0015_auto_20190716_2117.cpython-36.pyc -------------------------------------------------------------------------------- /conversor/migrations/__pycache__/__init__.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/raphaelgibson/conversortts/ec6799d33f60235ecb5298408735264e5344b2b8/conversor/migrations/__pycache__/__init__.cpython-36.pyc -------------------------------------------------------------------------------- /conversor/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | class Audio(models.Model): 4 | 5 | idiomas = [('de', 'Alemão'), 6 | ('ca', 'Catalão'), 7 | ('zn-cn', 'Chinês'), 8 | ('ko', 'Coreano'), 9 | ('es-es', 'Espanhol'), 10 | ('fr-fr', 'Francês'), 11 | ('en-ca', 'Inglês (Canadá)'), 12 | ('en-us', 'Inglês (EUA)'), 13 | ('en-uk', 'Inglês (Reino Unido)'), 14 | ('ja', 'Japonês'), 15 | ('la', 'Latim'), 16 | ('pt-br', 'Português (BR)'), 17 | ('pt-pt', 'Português (PT)'), 18 | ('ru', 'Russo')] 19 | 20 | nome_do_arquivo = models.CharField(max_length = 255, 21 | help_text = 'Não utilize acento no nome do arquivo.') 22 | 23 | texto = models.TextField() 24 | 25 | idioma = models.CharField( 26 | max_length = 255, 27 | choices = idiomas, 28 | default = ('pt-br', 'Português') 29 | ) 30 | 31 | def __str__(self): 32 | return self.nome_do_arquivo 33 | 34 | -------------------------------------------------------------------------------- /conversor/serializers.py: -------------------------------------------------------------------------------- 1 | from rest_framework import serializers 2 | from .models import Audio 3 | 4 | class AudioSerializer(serializers.ModelSerializer): 5 | 6 | class Meta: 7 | 8 | model = Audio 9 | fields = '__all__' -------------------------------------------------------------------------------- /conversor/static/css/style.css: -------------------------------------------------------------------------------- 1 | * { 2 | margin: 0; 3 | padding: 0; 4 | } 5 | 6 | html, body{ 7 | height: 100%; 8 | } 9 | 10 | /* Cabeçalho */ 11 | 12 | .topo{ 13 | width: 100%; 14 | background-color: rgb(50, 50, 50); 15 | padding: 20px; 16 | border-bottom: 4px solid rgb(50, 255, 50); 17 | } 18 | 19 | .topo a:hover{ 20 | text-decoration: none; 21 | } 22 | 23 | .nome{ 24 | box-sizing: border-box; 25 | border: 5px outset; 26 | padding: 1%; 27 | margin: 0 auto; 28 | width: 60%; 29 | font-size: 30px; 30 | font-weight: bold; 31 | font-style: italic; 32 | color: rgb(50, 255, 50); 33 | text-align: center; 34 | letter-spacing: 15px; 35 | } 36 | 37 | .nome:hover{ 38 | border: 5px inset; 39 | } 40 | 41 | 42 | /* Página inicial */ 43 | 44 | .explicacao{ 45 | margin-top: 2.5%; 46 | margin-right: 50%; 47 | margin-bottom: 2.5%; 48 | margin-left: 7.5%; 49 | font-size: 20px; 50 | 51 | } 52 | 53 | /* Formulário principal */ 54 | 55 | div.col-xs-4{ 56 | display: inline-table; 57 | width: 30vw; 58 | } 59 | 60 | /* Botão que gera o áudio */ 61 | 62 | .gerar{ 63 | background-color: rgb(50, 50, 50); 64 | color: rgb(50, 255, 50); 65 | border: 2px solid; 66 | border-radius: 20px; 67 | padding: 8px; 68 | cursor: pointer; 69 | } 70 | 71 | .gerar:hover{ 72 | border: 4px solid;; 73 | } 74 | 75 | .visualizacao{ 76 | margin-left: 4%; 77 | margin-top: 2.5%; 78 | margin-bottom: 2.5%; 79 | } 80 | 81 | .visualizacao p{ 82 | margin-top: 1%; 83 | margin-right: 55%; 84 | margin-bottom: 1.5%; 85 | margin-left: 1.5%; 86 | padding: 5px; 87 | border-left: 3px solid rgb(50, 255, 50); 88 | border-bottom: 2px solid rgb(50, 255, 50); 89 | text-align: left; 90 | font-size: 18px; 91 | } 92 | 93 | .visualizacao a:hover{ 94 | text-decoration: none; 95 | } 96 | 97 | audio { 98 | margin-left: 1%; 99 | } 100 | 101 | #download{ 102 | border: none; 103 | margin-left: 1%; 104 | font-size: 16px; 105 | } 106 | 107 | span.botao{ 108 | margin-top: 2%; 109 | margin-bottom: 2%; 110 | margin-left: 1%; 111 | font-size: 16px; 112 | background-color: rgb(50, 50, 50); 113 | color: rgb(50, 255, 50); 114 | border: 2px solid; 115 | border-radius: 20px; 116 | padding: 8px; 117 | text-align: center; 118 | } 119 | 120 | span.botao:hover{ 121 | border: 4px solid; 122 | } 123 | 124 | 125 | /* Rodapé */ 126 | 127 | footer{ 128 | box-sizing: border-box; 129 | background-color: black; 130 | position: relative; 131 | margin: 5% auto; 132 | padding: 7% 35%; 133 | text-align: center; 134 | margin-bottom: 0px; 135 | } 136 | 137 | footer p{ 138 | line-height: 15px; 139 | color: gray; 140 | } 141 | 142 | footer h2{ 143 | color: gray; 144 | } -------------------------------------------------------------------------------- /conversor/static/icone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/raphaelgibson/conversortts/ec6799d33f60235ecb5298408735264e5344b2b8/conversor/static/icone.png -------------------------------------------------------------------------------- /conversor/templates/base.html: -------------------------------------------------------------------------------- 1 | {% load static %} 2 | 3 | 4 | 5 |
6 | 7 |Conversor Text-To-Speech
22 | 23 |{{audio.nome_do_arquivo}}.mp3
13 | 14 |{{audio.texto}}
17 | 18 | 22 | 23 |Para baixar o áudio, clique nos 3 pontos do player de áudio e em seguida clique em "Fazer o download".
24 | 25 |Este conversor de texto para áudio gera um arquivo de áudio baseado no texto digitado e o disponibiliza para download no formato MP3.
9 | 10 |