Programa em JAVA Emoção Expressiva
- #Java
Aqui criamos um programa em Java que ajude autistas a identificar e expressar suas emoções. O programa será uma aplicação simples com uma interface gráfica onde o usuário pode selecionar entre diferentes emoções e visualizar imagens correspondentes. Além disso, o programa pode falar a emoção selecionada usando o sistema de síntese de fala (Text-to-Speech, TTS).
Para isso, usaremos a biblioteca javax.swing
para a interface gráfica e a biblioteca FreeTTS
para a síntese de fala. Primeiro, vamos adicionar as dependências necessárias para o FreeTTS em um arquivo pom.xml
se estivermos usando Maven:
xml
Copiar código
<dependencies>
<dependency>
<groupId>com.sun.speech</groupId>
<artifactId>freetts</artifactId>
<version>1.2.2</version>
</dependency>
</dependencies>
Agora, o código em Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import com.sun.speech.freetts.*;
public class EmocaoExpressiva {
private static final String VOICENAME = "kevin16";
public static void main(String[] args) {
JFrame frame = new JFrame("Emoção Expressiva");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 400);
JLabel label = new JLabel("Selecione uma emoção:", SwingConstants.CENTER);
label.setFont(new Font("Serif", Font.PLAIN, 24));
String[] emotions = {"Feliz", "Triste", "Zangado", "Surpreso"};
JComboBox<String> emotionComboBox = new JComboBox<>(emotions);
JLabel emotionImage = new JLabel();
emotionImage.setHorizontalAlignment(SwingConstants.CENTER);
JButton speakButton = new JButton("Falar Emoção");
emotionComboBox.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String selectedEmotion = (String) emotionComboBox.getSelectedItem();
ImageIcon icon = new ImageIcon("images/" + selectedEmotion.toLowerCase() + ".png");
emotionImage.setIcon(icon);
}
});
speakButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String selectedEmotion = (String) emotionComboBox.getSelectedItem();
speak(selectedEmotion);
}
});
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
panel.add(label);
panel.add(emotionComboBox);
panel.add(emotionImage);
panel.add(speakButton);
frame.add(panel);
frame.setVisible(true);
}
public static void speak(String text) {
VoiceManager vm = VoiceManager.getInstance();
Voice voice = vm.getVoice(VOICENAME);
if (voice != null) {
voice.allocate();
voice.speak(text);
voice.deallocate();
} else {
System.err.println("Voice not found");
}
}
}
Explicação do Código
- Dependências: Adicionamos a biblioteca
FreeTTS
para permitir a síntese de fala. - Interface Gráfica: Usamos
javax.swing
para criar uma interface gráfica simples com umJComboBox
para selecionar emoções, umaJLabel
para exibir a imagem correspondente, e umJButton
para acionar a síntese de fala. - Seleção de Emoções: Quando uma emoção é selecionada no
JComboBox
, a imagem correspondente é carregada e exibida naJLabel
. - Síntese de Fala: Quando o botão "Speak Emotion" é pressionado, a emoção selecionada é falada usando a biblioteca
FreeTTS
.
Imagens de Emoções
Você precisa adicionar imagens das emoções (feliz, triste, zangado, surpreso) na pasta images
no mesmo diretório do seu programa. As imagens devem ser nomeadas como happy.png
, sad.png
, angry.png
e surprised.png
.
Compilação e Execução
Certifique-se de que todas as dependências estejam corretamente configuradas e execute o programa. O usuário poderá selecionar uma emoção, visualizar a imagem correspondente e ouvir a emoção falada, o que pode ajudar na identificação e expressão de emoções.
Esse programa, "Emoção Expressiva", oferece uma maneira interativa e multimodal para ajudar autistas a reconhecer e expressar suas emoções, promovendo o desenvolvimento emocional e social.
Quem topa testar???rsrssr