如何使用StreamingRecognize超过1分钟?

时间:2016-10-23 06:30:45

标签: google-speech-api

我很擅长使用Google语音API。我的应用程序要求我连续传输语音识别的音频请求。使用时间将连续超过1分钟。但是,根据Usage Limits,服务在60秒后停止。有没有解决这个问题的方法?

非常感谢任何帮助。

由于

2 个答案:

答案 0 :(得分:0)

深入Google云控制台是指向表单的链接,您可以请求增加某些限制。但是,如果可能,请使用异步识别,这将为您提供长达80分钟的识别时间。

要达到限制增加形式:

  1. 转到API manager in the console
  2. 点击Google Cloud Speech API
  3. 点击"配额"标签
  4. 向下滚动到任何可调整的配额,例如Discovery requests per 100 seconds
  5. 点击"编辑"右边的图标。
  6. 在弹出窗口中应该有一个标题为“#34;申请更高配额”的链接。"

答案 1 :(得分:0)

我通过创建一系列流识别请求在Node.js应用中解决了这个问题。

代码在这里:https://github.com/marciovm/Speech-Forever

技巧是在输入语音的合适中断上请求新流客户端(来自用户的浏览器或等效物)。

关于app.js(节点服务器)的关键部分

JTable (Object[][] data, Object[] headers)

关于demo.js(客户端浏览器)的关键部分

public class Window extends JFrame {
    Window() {
        super();
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        JTable table = new JTable();
        table.setModel(new DefaultTableModel(null, new String[]{"col1"}));
        TableRowSorter<TableModel> sorter = new TableRowSorter<>(table.getModel());
        sorter.setComparator(0, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o1.compareTo(o2);
            }
        });
        sorter.setSortsOnUpdates(true);
        table.setRowSorter(sorter);

        DefaultTableModel model = (DefaultTableModel)table.getModel();
        model.addRow(new String[] {"A"});
        model.addRow(new String[] {"C"});
        model.addRow(new String[] {"B"});

        this.getContentPane().add(table);
        pack();
        setVisible(true);
    }

    public static void main(String[] args) {
        new Window();
    }
}