小编big*_*tie的帖子

Java语音识别非常小的字典

我有MP3音频文件,其中包含计算机留下的语音邮件.

邮件内容始终采用相同的格式,并由相同的计算机语音保留,内容略有不同:

"你今天卖了4辆汽车"(其中4辆可以是从0到9的任何东西).

我一直试图建立Sphinx,但开箱即用的模型并没有太好用.

然后我尝试编写自己的声学模型并且还没有取得更好的成功(30%未被识别是我最好的).

我想知道语音识别对于这个任务是否有点过分,因为我只有一个声音,一个预期的音频模式和一个非常有限的字典需要被识别.

我可以访问消息中需要搜索的十种声音(口语号码)中的每一种.

是否有非VR方法在音频文件中查找声音(如果需要,我可以将MP3转换为其他格式).

更新:我的解决方案如下

在与Nikolay直接合作之后,我了解到我原来问题的答案是无关紧要的,因为使用Sphinx4和JSGF语法可以达到预期的结果(100%准确度).

1:由于我的audo文件中的演讲非常有限,我创建了一个JSGF语法(salesreport.gram)来描述它.我在JSpeech Grammar Format页面上提供了创建以下语法所需的所有信息.

#JSGF V1.0;

grammar salesreport;

public <salesreport> = (<intro> | <sales> | <closing>)+;

<intro> = this is your automated automobile sales report;

<sales> = you sold <digit> cars today;

<closing> = thank you for using this system;

<digit> = zero | one | two | three | four | five | six | seven | eight | nine;
Run Code Online (Sandbox Code Playgroud)

注意: Sphinx 在语法中不支持JSGF标记.如有必要,可以使用正则表达式来提取特定信息(在我的情况下 …

java audio voice-recognition

7
推荐指数
1
解决办法
1714
查看次数

等待光标并禁用 Java 应用程序

我想让用户按下一个按钮来启动后台线程。

当线程正在处理时,我希望发生两件事:

1) 应显示 WAIT_CURSOR。

2) 应用程序不应响应鼠标事件。

根据setCursor 文档“当此组件的 contains 方法针对当前光标位置返回 true 时,将显示此光标图像,并且此组件可见、可显示且已启用。”。

我希望在处理此后台线程时禁用我的应用程序。

任何想法如何获得我想要的功能?

import java.awt.Component;
import java.awt.Cursor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class WaitCursor extends JFrame
{
    private static final long    serialVersionUID    = 1L;

    public WaitCursor()
    {
        setResizable(false);

        setName(getClass().getSimpleName());
        setTitle("My Frame");
        setSize(300, 300);

        getContentPane().add(new MyButtonPanel());

    }

    private class MyButtonPanel extends JPanel
    {

        private static final long    serialVersionUID    = 1L;

        public MyButtonPanel()
        {
            JButton btnStart = new …
Run Code Online (Sandbox Code Playgroud)

java swing cursor busy-cursor glasspane

5
推荐指数
1
解决办法
1万
查看次数

覆盖单个对象的UIManager值

是否可以覆盖UIManager特定对象的属性?

例如,我的UI管理器有

[Label.background] => (ColorUIResource) [javax.swing.plaf.ColorUIResource[r=238,g=238,b=238]]
Run Code Online (Sandbox Code Playgroud)

我想JLabelColor.WHITE背景制作一个.

whiteJLabel.setBackground(Color.WHITE)
Run Code Online (Sandbox Code Playgroud)

..没有效果.

java swing background jlabel uimanager

4
推荐指数
1
解决办法
231
查看次数

在JTabbedPane上使用JPanel中心JDialog

我已经尝试了我在这里和其他网站上找到的所有建议.

我似乎无法让这个JDialog集中在JTabbedPane上的面板上.

请注意,我必须禁用关闭按钮,因此我不能使用标准的JOptionPane.showDialogXYZ()方法.

有任何想法吗?

import java.awt.BorderLayout;
import java.awt.Dialog.ModalityType;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.SwingUtilities;

public class CenterDialog extends JFrame
{
    public CenterDialog()
    {
        setResizable(false);

        setName(getClass().getSimpleName());
        setTitle("My Frame");
        setSize(300, 300);

        JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);

        // Add the panel
        tabbedPane.addTab("Button panel", new MyButtonPanel());

        add(tabbedPane, BorderLayout.CENTER);

        getContentPane().add(tabbedPane);
    }

    private class MyButtonPanel extends JPanel
    {

        public MyButtonPanel()
        {
            JButton btnShowDialog = …
Run Code Online (Sandbox Code Playgroud)

java swing jdialog centering

2
推荐指数
1
解决办法
2670
查看次数