Search
Close this search box.
Transcrição de áudio com um App alimentado por IA e Python
transcrição de áudios

Posts Relacionados:

Um App de transcrição de áudio é uma ferramenta excelente para anotar aulas, reuniões e palestras automaticamente e libertar nosso tempo. Nessa postagem, criaremos um poderoso transcritor de áudio alimentado por IA em minutos usando Streamlit e Python.

Receba nossa newsletter

Python app

Quem nunca se sentiu cansado de intermináveis reuniões e palestras que resultam em montanhas de notas e nos desconcentram do essencial? Felizmente, existe uma solução simples para isso que pode ser alcançada em poucas linhas de código com Python. Essa solução é a criação de um aplicativo de transcrição de áudio alimentado por IA, que pode ser calibrado sob medida para o seu fluxo de trabalho. Nosso app para transcrição de áudio será construído com Streamlit, o que possibilitará seu compartilhamento fácil como um aplicativo web.

Um app de transcrição de áudio possibilita a captura sem esforço de entrevistas, palestras ou reuniões, sem perder nada. Ele também permite redirecionar conteúdos de áudios para postagens de blog e artigos. Com o auxílio do Python, a transcrição de áudio facilita a criação de arquivos pesquisáveis, acessíveis a qualquer hora e em qualquer lugar.

Bibliotecas Python Necessárias

Usaremos as seguintes bibliotecas: pydub, SpeechRecognition e Streamlit. A biblioteca Streamlit já foi discutida em inúmeras postagens anteriores (aqui, aqui, aqui e aqui).

Pydub é uma biblioteca Python que permite trabalhar com arquivos de áudio de forma fácil e eficiente.

A biblioteca SpeechRecognition é uma ferramenta poderosa e fácil de usar que utiliza tecnologias de IA para converter áudio falado em texto escrito (leia mais aqui). Sua tecnologia se baseia em dois componentes principais de IA: mecanismos de reconhecimento de fala e modelos acústicos. Mecanismos de reconhecimento de fala empregam algoritmos sofisticados treinados em conjuntos de dados massivos de linguagem falada e textos correspondentes. Modelos acústicos capturam as características acústicas de diferentes fonemas e palavras, auxiliando a IA a distinguir entre sons semelhantes e variações na pronúncia.

As bibliotecas pydub e SpeechRecognition são comumente usadas na criação de assistentes pessoais com Python.

Para instalá-las, é fortemente recomendável utilizar um ambiente virtual. Para instalar com pip:

				
					
pip install pydub
pip install SpeechRecognition 
pip install streamlit 

				
			

Para quem prefere fazer as instalações com conda:

				
					conda install conda-forge::pydub
conda install conda-forge::speechrecognition
conda install conda-forge::streamlit

				
			

Aplicativo Python para Transcrição de Áudio

Iniciaremos nosso código com a transcrição de áudio e depois criaremos a interface de usuários com Streamlit. O primeiro passo é fazer as importações necessárias num arquivo Python que pode se chamar app.py. Em seguida, iniciamos a classe Recognizer da biblioteca SpeechRecognition (linha 9). Copie o trecho abaixo.

				
					from pydub import AudioSegment
import speech_recognition as sr
import streamlit as st
import time

r = sr.Recognizer()


				
			

Nosso app receberá dois tipos de arquivos de áudio: arquivos wav e mp3. Mas, para fazer a transcrição, é necessário que o arquivo esteja no formato wav. Nossa primeira função, mostrada abaixo, converte arquivos mp3 para esse formato.

				
					
def convert_audio(file, nome_arquivo):
    '''converte arquivo .mp3 em .wav'''
    sound = AudioSegment.from_mp3(file)
    new_file = sound.export(nome_arquivo[:-4]+".wav", format="wav")
    return new_file

				
			

No trecho acima, a função apenas carrega o arquivo de áudio e depois faz a conversão do arquivo mp3 para wav com a biblioteca pydub (linha 4).

Transcrição de áudio

Em seguida, definimos uma função para realizar a transcrição. Ela é bem simples e consiste basicamente no uso do método Recognizer da biblioteca SpeechRecognition e na criação de um arquivo de texto. Note que estamos usando a função recognize_google() que faz transcrições em diversas línguas.

				
					
def transcreve_audio(audio):
    '''transcreve áudio'''
    with sr.AudioFile(audio) as source:
        # carrega áudio 
        audio_data = r.record(source)
        # converte para texto
        texto = r.recognize_google(audio_data)
        with open('texto.txt', 'w') as f:
            f.write(texto)
    return texto
				
			

Interface de usuário com Streamlit

O próximo passo é criar uma interface de usuário com Streamlit. Primeiro adicionamos um título.

				
					
st.title("Aplicativo Python para Transcrições de Áudios") 
				
			

Em seguida, criamos uma função para receber os arquivos de áudio. Como mencionado antes, ela aceitará uploads de arquivos wav ou mp3. Se o arquivo for mp3, é preciso chamar a função convert_audio() para realizar a conversão para wav.

				
					
def create_upload_file():
    '''Recebe uploads de arquivos mp3 ou wav'''
    uploaded_file = st.file_uploader("Selecione um áudio", type=["wav", "mp3"])
    if uploaded_file:
        nome_arquivo = uploaded_file.name
        if nome_arquivo[-3:] == 'mp3':
            uploaded_file = convert_audio(uploaded_file, nome_arquivo)
    return uploaded_file
				
			

Nossa próxima função se chama main() e é responsável por chamar a função anterior e a função de transcrição. Como a transcrição pode ser lenta, adicionamos um spinner para deixar o usuário saber que a transcrição está sendo realizada.

				
					
def main():
    '''Chama funções de upload e de transcrição'''
    uploaded_file = create_upload_file()
    if uploaded_file is not None:
        with st.spinner('Transcrevendo, isso pode demorar...'):
            texto = transcreve_audio(uploaded_file)
            time.sleep(1)
            st.subheader('Sua transcrição está pronta')
            time.sleep(2)
            st.write(texto)
main()

				
			

Após a transcrição terminar, nossa função mostra o texto gerado diretamente numa área de texto do app (linha 10). Não esqueça de chamar a função main() logo abaixo de sua definição como mostrado no trecho acima (linha 11). Salve tudo e rode o app com o comando streamlit run app.py. 

Customização

Nosso código já está pronto, mas ele pode ser melhorado. Nessa sessão, adicionaremos um pequeno trecho de css para customizar nosso app. Crie um arquivo e o nomeie como style.css. Ele precisa estar na mesma pasta do arquivo app.py.

A customização que faremos é simples. Ela seleciona todos os elementos de texto do corpo do HTML do nosso app e define uma fonte, seu tamanho, cor e intensidade. No arquivo style.css, copie o código abaixo e faça seu salvamento.

				
					
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@100&display=swap'); 

html, body [class*="css"] {
    font-family: 'Roboto', sans-serif; 
    font-size: 18px;
    font-weight: 500;
    color: #091747;
}
				
			

No topo do arquivo do app (app.py), logo após importar as bibliotecas, insira o seguinte trecho:

				
					
with open( "style.css" ) as css:
    st.markdown( f'<style>{css.read()}</style>' , unsafe_allow_html= True)

				
			

Conclusões

Neste post, fizemos mais um app com Streamlit, dessa vez para transcrição de áudio. Streamlit é fácil de ser usado e é uma opção bem interessante para criar protótipos e apps pequenos. Para fazer a implantação completa desse app, veja algumas instruções aqui. Para conhecer melhor como usar css para customizar seus códigos, clique aqui.

Veja uma imagem do nosso app abaixo. Note que, como usamos a biblioteca SpeechRecognition com google_recognizer(), nosso app pode transcrever textos em português, inglês e diversas outras línguas.

transcrição de áudio

Imagem com IA Generativa – Dia 102

IA generativa img102

Arte com IA generativa: imagem do dia

Todos os dias, postamos um exemplo de imagem artística gerada com inteligência artificial.

Tutoriais

Postagens Mais Recentes

Outras Postagens Que Podem Interessar

Veja
Mais

Fique em contato

Se inscreva para receber nossa newsletter com novidades.

aprendiz artificial