⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 audiotool.java

📁 It is the Speech recognition software. It is platform independent. To execute the source code,
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    /**     * Creates the menu bar.     */    private static void createMenuBar(JFrame jframe) {        JMenuBar menuBar = new JMenuBar();        jframe.setJMenuBar(menuBar);        JMenu menu = new JMenu("File");        menuBar.add(menu);                JMenuItem menuItem = new JMenuItem("Open...");        menuItem.setAccelerator(KeyStroke.getKeyStroke("control O"));        menuItem.addActionListener(new ActionListener() {                public void actionPerformed(ActionEvent evt) {                    getFilename("Open...", JFileChooser.OPEN_DIALOG);                    if ((filename == null) || (filename.length() == 0)) {                        return;                    }                    try {                        getAudioFromFile(filename);                    } catch (Exception e) {                        e.printStackTrace();                    }                }            });        menu.add(menuItem);                saveMenuItem = new JMenuItem("Save");        saveMenuItem.setAccelerator(KeyStroke.getKeyStroke("control S"));	saveMenuItem.setEnabled(false);        saveMenuItem.addActionListener(new ActionListener() {                public void actionPerformed(ActionEvent evt) {                    if ((filename != null) && (filename.length() > 0)) {                        try {                            Utils.writeRawFile(audio, filename);			    saveMenuItem.setEnabled(false);                        } catch (IOException e) {                            e.printStackTrace();                        }                    }                }            });        menu.add(saveMenuItem);                menuItem = new JMenuItem("Save As...");        menuItem.setAccelerator(KeyStroke.getKeyStroke("control V"));        menuItem.addActionListener(new ActionListener() {                public void actionPerformed(ActionEvent evt) {                    getFilename("Save As...", JFileChooser.SAVE_DIALOG);                    if ((filename == null) || (filename.length() == 0)) {                        return;                    }                    try {                        Utils.writeRawFile(audio, filename);			saveMenuItem.setEnabled(false);                    } catch (IOException e) {                        e.printStackTrace();                    }                }            });        menu.add(menuItem);                menuItem = new JMenuItem("Quit");        menuItem.setAccelerator(KeyStroke.getKeyStroke("control Q"));        menuItem.addActionListener(new ActionListener() {                public void actionPerformed(ActionEvent evt) {                    System.exit(0);                }            });        menu.add(menuItem);                menu = new JMenu("Edit");        menuBar.add(menu);                menuItem = new JMenuItem("Select All");        menuItem.setAccelerator(KeyStroke.getKeyStroke("control A"));        menuItem.addActionListener(new ActionListener() {                public void actionPerformed(ActionEvent evt) {                    audioPanel.selectAll();                }            });        menu.add(menuItem);                menuItem = new JMenuItem("Crop");        menuItem.setAccelerator(KeyStroke.getKeyStroke("control X"));        menuItem.addActionListener(new ActionListener() {                public void actionPerformed(ActionEvent evt) {                    audioPanel.crop();                }            });        menu.add(menuItem);                menu = new JMenu("View");        menuBar.add(menu);                menuItem = new JMenuItem("Zoom In");        menuItem.setAccelerator(KeyStroke.getKeyStroke('>'));        menuItem.addActionListener(new ActionListener() {                public void actionPerformed(ActionEvent evt) {                    zoomIn();                }            });        menu.add(menuItem);                menuItem = new JMenuItem("Zoom Out");        menuItem.setAccelerator(KeyStroke.getKeyStroke('<'));        menuItem.addActionListener(new ActionListener() {                public void actionPerformed(ActionEvent evt) {                    zoomOut();                }            });        menu.add(menuItem);        menuItem = new JMenuItem("Original Size");        menuItem.setAccelerator(KeyStroke.getKeyStroke('!'));        menuItem.addActionListener(new ActionListener() {                public void actionPerformed(ActionEvent evt) {                    zoomReset();                }            });        menu.add(menuItem);        menu = new JMenu("Audio");        menuBar.add(menu);                menuItem = new JMenuItem("Play");        menuItem.setAccelerator(KeyStroke.getKeyStroke("control P"));        menuItem.addActionListener(new ActionListener() {                public void actionPerformed(ActionEvent evt) {                    player.play(audioPanel.getSelectionStart(),                                audioPanel.getSelectionEnd());                }            });        menu.add(menuItem);        recordListener = new ActionListener() {                public void actionPerformed(ActionEvent evt) {                    if (!recording) {                        recording = true;                        recorder.startRecording();                        recordButton.setText("Stop");			saveMenuItem.setEnabled(true);                    } else {                        recording = false;                        recorder.stopRecording();                        audio.setAudioData(getRecordedAudio(recorder));                        recordButton.setText("Record");                        player.play(audioPanel.getSelectionStart(),                                    audioPanel.getSelectionEnd());                    }                }            };                menuItem = new JMenuItem("Record Start/Stop");        menuItem.setAccelerator(KeyStroke.getKeyStroke("control R"));        menuItem.addActionListener(recordListener);        menu.add(menuItem);            }        /**     * Create the Panel where all the buttons are.     *     * @return a Panel with buttons on it.     */    private static JPanel createButtonPanel() {        JPanel buttonPanel = new JPanel();	FlowLayout layout = new FlowLayout();	layout.setAlignment(FlowLayout.LEFT);        buttonPanel.setLayout(layout);        playButton = new JButton("Play");        playButton.setEnabled(true);        playButton.addActionListener(new ActionListener() {		public void actionPerformed(ActionEvent e) {                    player.play(audioPanel.getSelectionStart(),                                audioPanel.getSelectionEnd());		}	    });        recordButton = new JButton("Record");        recordButton.setEnabled(true);        recordButton.addActionListener(recordListener);                zoomInButton = new JButton("Zoom In");        zoomInButton.setEnabled(true);        zoomInButton.addActionListener(new ActionListener() {		public void actionPerformed(ActionEvent e) {                    zoomIn();		}	    });        zoomOutButton = new JButton("Zoom Out");        zoomOutButton.setEnabled(true);        zoomOutButton.addActionListener(new ActionListener() {		public void actionPerformed(ActionEvent e) {                    zoomOut();		}	    });        zoomResetButton = new JButton("Reset Size");        zoomResetButton.setEnabled(true);        zoomResetButton.addActionListener(new ActionListener() {		public void actionPerformed(ActionEvent e) {                    zoomReset();		}	    });        JButton exitButton = new JButton("Exit");        exitButton.addActionListener(new ActionListener() {		public void actionPerformed(ActionEvent e) {		    System.exit(0);		}	    });        buttonPanel.add(recordButton);        buttonPanel.add(playButton);        buttonPanel.add(zoomInButton);        buttonPanel.add(zoomOutButton);        buttonPanel.add(zoomResetButton);        buttonPanel.add(exitButton);        return buttonPanel;    }    /**     * Main method.     *     * @param args argv[0] : The name of an audio file     *             argv[1] : SphinxProperties file     */    static public void main(String[] args) {        FrontEnd frontEnd;        StreamDataSource dataSource;                prefs = Preferences.userRoot().node(PREFS_CONTEXT);        filename = prefs.get(FILENAME_PREFERENCE, "untitled.raw");        file = new File(filename);        if ((args.length == 1) && (args[0].equals("-dumpMixers"))) {            dumpMixers();            System.exit(0);        }                try {            URL url;            if (args.length > 0) {                filename = args[0];            }            if (args.length == 2) {                url = new File(args[1]).toURI().toURL();            } else {                url = AudioTool.class.getResource("spectrogram.config.xml");            }            ConfigurationManager cm = new ConfigurationManager(url);            recorder = (Microphone) cm.lookup(MICROPHONE);            recorder.initialize();            audio = new AudioData();                        frontEnd = (FrontEnd) cm.lookup(FRONT_END);            dataSource = (StreamDataSource) cm.lookup(DATA_SOURCE);                        PropertySheet ps = cm.getPropertySheet(WINDOWER);            float windowShiftInMs = ps.getFloat                (RaisedCosineWindower.PROP_WINDOW_SHIFT_MS,             RaisedCosineWindower.PROP_WINDOW_SHIFT_MS_DEFAULT);	    final JFrame jframe = new JFrame("AudioTool");            fileChooser = new JFileChooser();            createMenuBar(jframe);                        /* Scale the width according to the size of the             * spectrogram.             */            float windowShiftInSamples = windowShiftInMs                * audio.getAudioFormat().getSampleRate() / 1000.0f;            audioPanel = new AudioPanel(audio,                                        1.0f / windowShiftInSamples,                                        0.004f);            spectrogramPanel = new SpectrogramPanel(frontEnd, dataSource, audio);            JPanel panel = new JPanel();            panel.setLayout(new BorderLayout());	    panel.add(createButtonPanel(), BorderLayout.NORTH);            panel.add(audioPanel, BorderLayout.CENTER);	    panel.add(spectrogramPanel, BorderLayout.SOUTH);            	    JScrollPane scroller = new JScrollPane(panel);            player = new AudioPlayer(audio);            player.start();                        getAudioFromFile(filename);                        jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);	    jframe.setContentPane(scroller);            jframe.pack();            jframe.setSize(640,540);            jframe.setVisible(true);        } catch (Exception e) {            e.printStackTrace();        }    }       }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -