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
FreeTTSpara permitir a síntese de fala. - Interface Gráfica: Usamos
javax.swingpara criar uma interface gráfica simples com umJComboBoxpara selecionar emoções, umaJLabelpara exibir a imagem correspondente, e umJButtonpara 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



