Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Додаток М






Лістинг програми «Голосовий блокнот»

 

package edu.cmu.sphinx.demo.helloworld;

import java.awt.Color;

import java.awt.EventQueue;

import java.awt.Frame;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.border.EmptyBorder;

import javax.swing.text.BadLocationException;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import java.awt.datatransfer.Clipboard;

import javax.swing.JMenuItem;

import javax.swing.JTextArea;

import java.awt.event.ActionListener;

import java.awt.event.ActionEvent;

import javax.swing.JTextField;

import java.io.File;

import java.io.IOException;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import java.awt.*;

import edu.cmu.sphinx.frontend.util.Microphone;

import edu.cmu.sphinx.recognizer.Recognizer;

import edu.cmu.sphinx.result.Result;

import edu.cmu.sphinx.util.props.ConfigurationManager;

import java.io.*;

import java.util.*;

public class NotePade extends JFrame {

//Объект класса потока, в котором слушается микрофон

public static Changer k;

public static String[] args1;

public static JTextField answer;

Clipboard clip = getToolkit().getSystemClipboard();

String sVal;

static String sText;

public static JLabel yousaid, mntmExit;

private static final long serialVersionUID = 1L;

private static final Frame modalBlocker = null;

private JPanel contentPane;

public static JTextArea textArea;

public static JMenuItem OpenI;

public static String word;

public static String str=" ";

public static String str1=" ", str2=" ", str3=" ";

public static String str4=" ";

public static String str6=" ";

public static String str7=" ", str8=" ", str9=" ";

static int len1;

static int i=0;

int pos1;

int len;

static Font f;

static String months[]={

" Jan", " Feb", " Mar", " Apr",

" May", " Jun", " Jul", " Aug",

" Sep", " Oct", " Nov", " Dec" };

static GregorianCalendar gcalendar;

public NotePade() {

setTitle(" Voice NotePade");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setBounds(100, 100, 450, 300);

contentPane = new JPanel();

contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

setContentPane(contentPane);

contentPane.setLayout(null);

JMenuBar menuBar = new JMenuBar();

menuBar.setBounds(0, 0, 424, 21);

contentPane.add(menuBar);

JMenu mnFile = new JMenu(" File");

menuBar.add(mnFile);

JMenuItem OpenI = new JMenuItem(" Open");

OpenI.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

try { openI(); } catch (IOException e) {} }});

mnFile.add(OpenI);

JMenuItem mntmSaveAs = new JMenuItem(" Save as ");

mntmSaveAs.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

try { saveI(); } catch (IOException e) {} }});

mnFile.add(mntmSaveAs);

final JMenuItem mntmExit = new JMenuItem(" Exit");

mntmExit.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

exitI(); }});

mnFile.add(mntmExit);

JMenu mnEdit = new JMenu(" Edit");

menuBar.add(mnEdit);

JMenuItem mntmCopy = new JMenuItem(" Copy Say: \" Copy\" ");

mntmCopy.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) { copyI(); }});

mnEdit.add(mntmCopy);

JMenuItem mntmCut = new JMenuItem(" Cut Say: \" Cut\" ");

mntmCut.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {try { cutI();

} catch (IOException e1) {} }});

mnEdit.add(mntmCut);

JMenuItem mntmPast = new JMenuItem(" Past Say: \" Past\" ");

mntmPast.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {pastI(); }});

mnEdit.add(mntmPast);

JMenuItem mntmTimeday = new JMenuItem(" Time/Day.......Say: \" Time\" ");

mntmTimeday.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) { td(); }});

JMenuItem mntmSelectsayselect = new JMenuItem(" Select Say: \" Select\" ");

mntmSelectsayselect.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

try { iS(); } catch (BadLocationException e1) {}} });

mnEdit.add(mntmSelectsayselect);

JMenuItem mntmNewMenuItem = new JMenuItem(" Time/Day Say: \" Time\" ");

mntmNewMenuItem.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

td(); }});

mnEdit.add(mntmNewMenuItem);

JMenu mnFormat = new JMenu(" Format");

menuBar.add(mnFormat);

JMenu mnColor = new JMenu(" Font Color");

mnFormat.add(mnColor);

JMenuItem mntmBlack = new JMenuItem(" Black");

mntmBlack.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

try { colorBlack();

} catch (IOException e1) {} }});

mnColor.add(mntmBlack);

JMenuItem mntmRed = new JMenuItem(" Red");

mntmRed.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

try { colorRed(); } catch (IOException e1) {} }});

mnColor.add(mntmRed);

JMenu mnStyleFont = new JMenu(" Style Font");

mnFormat.add(mnStyleFont);

JMenuItem mntmRegulary = new JMenuItem(" Regulary");

mntmRegulary.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

try { reg();

} catch (IOException e1) {} }});

mnStyleFont.add(mntmRegulary);

JMenuItem mntmBold = new JMenuItem(" Bold");

mntmBold.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

try { boldI(); } catch (IOException e1) {} }});

mnStyleFont.add(mntmBold);

JMenuItem mntmItalic = new JMenuItem(" Italic");

mntmItalic.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

try { italicI();

} catch (IOException e1) {} }});

mnStyleFont.add(mntmItalic);

JMenu mnSize = new JMenu(" Font Size");

mnFormat.add(mnSize);

JMenuItem mntmNormal = new JMenuItem(" Normal");

mntmNormal.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

try { normI();

} catch (IOException e) {}} });

mnSize.add(mntmNormal);

JMenuItem mntmBig = new JMenuItem(" Big");

mntmBig.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

try { twentyI();

} catch (IOException e1) {} }});

mnSize.add(mntmBig);

JMenu mnHelp = new JMenu(" Help");

menuBar.add(mnHelp);

JMenuItem mntmHelpsayhelp = new JMenuItem(" Help");

mntmHelpsayhelp.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

helpI(); }});

mnHelp.add(mntmHelpsayhelp);

JMenuItem mntmAbout = new JMenuItem(" About");

mntmAbout.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

JOptionPane.showMessageDialog(mntmExit, " (c)Ryabchenko Alyona"); } });

mnHelp.add(mntmAbout);

JLabel lblYouSaid = new JLabel(" You said: ");

lblYouSaid.setForeground(Color.RED);

lblYouSaid.setFont(new Font(" Segoe Print", Font.BOLD, 11));

menuBar.add(lblYouSaid);

yousaid = new JLabel(".....................");

yousaid.setFont(new Font(" Segoe Print", Font.PLAIN, 11));

yousaid.setForeground(Color.RED);

menuBar.add(yousaid);

textArea = new JTextArea();

textArea.setLineWrap(true);

textArea.setBounds(10, 32, 414, 219);

contentPane.add(textArea);

f=new Font(" Serif", Font.PLAIN, 14);

textArea.setFont(f); }

public static void main(final String[] args) {

EventQueue.invokeLater(new Runnable() {

public void run() {try {

//Создание и запуск потока-слушателя микрофона

k = new Changer();

k.start();

args1 =args;

NotePade frame = new NotePade();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //закрывает всю программу

frame.setVisible(true);

} catch (Exception e) {} }}); }

//Класс для потока-прослушивателя микрофона

public static class Changer extends Thread

{ private static final String String = null;

public void run()

{ String[] args=args1;

//Инициализация послушивания микрофона

ConfigurationManager cm;

if (args.length > 0)

{ cm = new ConfigurationManager(args[0]); }

else { cm = new ConfigurationManager(NotePade.class.getResource(" helloworld.config.xml")); }

Recognizer recognizer = (Recognizer) cm.lookup(" recognizer");

recognizer.allocate();

// start the microphone or exit if the programm if this is not possible

Microphone microphone = (Microphone) cm.lookup(" microphone");

if (! microphone.startRecording())

{ System.out.println(" Cannot start microphone.");

recognizer.deallocate(); System.exit(1); }

//Цикл идентификации чисел и их добвления в текстовое поле

while (true)

{System.out.println(" Start speaking. Press Ctrl-C to quit.\n");

Result result = recognizer.recognize(); if (result! = null) {

String resultText = result.getBestFinalResultNoFiller();

System.out.println(resultText);

addNum(getStringNumber(resultText)); //отображение команд

if(resultText.equalsIgnoreCase(" select"))

try {iS(); } catch (BadLocationException e) {}

if(resultText.equalsIgnoreCase(" cut")) textArea.cut(); if(resultText.equalsIgnoreCase(" past")) textArea.paste();

if(resultText.equalsIgnoreCase(" copy")) textArea.copy();

if(resultText.equalsIgnoreCase(" time")) td();

//перевод в слова и цифры

public static String getStringNumber(String sText)

{ String sResult = " ";

if (sText.equalsIgnoreCase(" copy")) sResult = " copy";

if (sText.equalsIgnoreCase(" cut")) sResult = " cut";

if (sText.equalsIgnoreCase(" past")) sResult = " past";

if (sText.equalsIgnoreCase(" select")) sResult = " select";

if (sText.equalsIgnoreCase(" time")) sResult = " time";

return sResult; }

//отображение распознаных команд

public static void addNum(String sVal){

String sText=yousaid.getText();

sText=sVal;

yousaid.setText(sText); }

//находит последнее слово

public static boolean isWitespace(char ch){

return ch == ' ' || ch == '\n' || ch == '\t' || ch == '\r'; }

public static void iS() throws BadLocationException {

String sText = textArea.getText();

textArea.getCaretPosition();

int offs = textArea.getCaretPosition();

char ch = sText.charAt(0);

String text = textArea.getText(0, offs);

int firstIndexOfSpace = text.lastIndexOf(" ")+1;

int firstIndexOfTab = text.lastIndexOf(" \t")+1;

int firstIndexOfNewLine = text.lastIndexOf(" \n")+1;

int firstIndexOfWord = firstIndexOfSpace;

if (firstIndexOfTab > firstIndexOfWord) firstIndexOfWord = firstIndexOfTab;

if (firstIndexOfNewLine > firstIndexOfWord) firstIndexOfWord = firstIndexOfNewLine; word = text.substring(firstIndexOfWord, offs);

textArea.grabFocus();

textArea.select(firstIndexOfWord, offs); }

//открыть файл

public static void openI() throws IOException{

FileDialog dialog=new FileDialog(modalBlocker, str4);

dialog.setVisible(true); str4=" ";

str1 = dialog.getDirectory();

str2 = dialog.getFile();

str3 = str1+str2;

File f=new File(str3);

FileInputStream fobj = null;

fobj = new FileInputStream(f);

int len=(int)f.length();

for(int j=0; j< len; j++)

{ char str5 = 0; str5 = (char)fobj.read(); str4=str4 + str5; }

textArea.setText(str4); }

//сохранить файл

public static void saveI() throws IOException{

FileDialog dialog1=new FileDialog(modalBlocker, " Save As", FileDialog.SAVE);

dialog1.setVisible(true);

str7=dialog1.getDirectory();

str8=dialog1.getFile();

str9=str7+str8;

str6=textArea.getText();

len1=str6.length();

byte buf[]=str6.getBytes();

File f1=new File(str9);

FileOutputStream fobj1=new FileOutputStream(f1);

for(int k=0; k< len1; k++)

{ fobj1.write(buf[k]); }

fobj1.close(); }

//выйти

public void exitI(){

System.exit(0); }

//вырезать

public static void cutI()throws IOException{

str=textArea.getSelectedText();

i=textArea.getText().indexOf(str);

textArea.replaceRange(" ", i, i+str.length()); }

//copy

public static void copyI(){

str=textArea.getSelectedText(); }

//past

public static void pastI(){

int pos1=textArea.getCaretPosition();

textArea.insert(str, pos1); }

//time and day

public static void td(){

gcalendar=new GregorianCalendar();

String h=String.valueOf(gcalendar.get(Calendar.HOUR));

String m=String.valueOf(gcalendar.get(Calendar.MINUTE));

String s=String.valueOf(gcalendar.get(Calendar.SECOND));

String date=String.valueOf(gcalendar.get(Calendar.DATE));

String mon=months[gcalendar.get(Calendar.MONTH)];

String year=String.valueOf(gcalendar.get(Calendar.YEAR));

String hms=" Time" +" - " +h+": " +m+": " +s+" Date" +" - " +date+"." +mon+"." +year;

int loc=textArea.getCaretPosition();

textArea.insert(hms, loc); }

//14

public static void normI()throws IOException{

String fontName=f.getName();

String fontFamily=f.getFamily();

int fontSize=f.getSize();

int fontStyle=f.getStyle();

f=new Font(fontName, fontStyle, 14);

textArea.setFont(f); }

//20

public static void twentyI()throws IOException{

String fontName=f.getName();

String fontFamily=f.getFamily();

int fontSize=f.getSize();

int fontStyle=f.getStyle();

f=new Font(fontName, fontStyle, 20);

textArea.setFont(f); }

//обычный шрифт

public static void reg()throws IOException{

String fontName=f.getName();

String fontFamily=f.getFamily();

int fontSize=f.getSize();

int fontStyle=f.getStyle();

f=new Font(fontName, Font.PLAIN, fontSize);

textArea.setFont(f); }

// меняем шрифт на bold

public static void boldI()throws IOException{

String fontName=f.getName();

String fontFamily=f.getFamily();

int fontSize=f.getSize();

int fontStyle=f.getStyle();

f=new Font(fontName, Font.BOLD, fontSize);

textArea.setFont(f); }

// меняем шрифт на italic

public static void italicI()throws IOException {

String fontName=f.getName();

String fontFamily=f.getFamily();

int fontSize=f.getSize();

int fontStyle=f.getStyle();

f=new Font(fontName, Font.ITALIC, fontSize);

textArea.setFont(f); }

//цвет меняем red

public static void colorRed() throws IOException{

textArea.setForeground(Color.red); }

//цвет меняем black

public static void colorBlack() throws IOException{

textArea.setForeground(Color.black); }

public static void helpI(){

JOptionPane.showMessageDialog(mntmExit, " This program contains next voice command: \n" + " Cut\n" + " Copy\n" + " Past\n" + " Select\n"); }}






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.