我可以在我的桌面应用程序中使用谷歌语音识别 API

2023-12-29

我想知道我是否可以在我的桌面应用程序中使用 google 的语音识别 api。我见过一些示例,其中我必须将语音转换为文件并发送到网址。但这将是一个不太麻烦的任务,因为在我的应用程序中,用户必须不断提交他的声音。那么还有其他替代方法可以使用 google voice api 吗?我对狮身人面像最不感兴趣,因为它的准确性非常低,而且我不知道如何在字典中添加新单词,并且如果不将其添加到字典中,它就无法识别新单词。任何帮助,将不胜感激。


您指的是环境聆听吗?我实际上正在使用 Google 语音识别 API 开发一些语音活动检测算法。虽然我还没有完成算法,但我添加了一个音量和频率计算器,这样你就不必在对方不说话时向 Google 发送请求。这是源代码的链接。

https://github.com/The-Shadow/java-speech-api https://github.com/The-Shadow/java-speech-api

(这不是我使用的,但它很简单。您还可以添加频率阈值保持和其他内容。我将此代码放在一起,因此不能保证它能够工作,请查看 API 的示例分支。)

//package recognitionprocess;
//import org.jaudiotagger.audio.*;


import java.io.FileOutputStream;
import java.io.IOException;
import java.io.RandomAccessFile;

import javax.sound.sampled.AudioFileFormat;

import com.darkprograms.speech.recognizer.GoogleResponse;
import com.darkprograms.speech.recognizer.Recognizer;

public class RecognitionMain {

    public static void main(String[] args)  {
        try{
        ambientListening();
        }
        catch(Exception e){
            e.printStackTrace();
        }
    }

    private static void ambientListening() throws Exception{

        String filename = "tarunaudio.wav";//Your Desired FileName
        MicrophoneAnalyzer mic = new MicrophoneAnalyzer(AudioFileFormat.Type.WAVE);
       mic.open();
        mic.captureAudioToFile(filename);
        final int THRESHOLD = 10;//YOUR THRESHOLD VALUE.
        int ambientVolume = mic.getAudioVolume();//
        int speakingVolume = -2;
        boolean speaking = false;
            for(int i = 0; i<1||speaking; i++){
                int volume = mic.getAudioVolume();
                System.out.println(volume);
                if(volume>ambientVolume+THRESHOLD){
                    speakingVolume = volume;
                    speaking = true;
                    Thread.sleep(1000);
                    System.out.println("SPEAKING");
                }
                if(speaking && volume+THRESHOLD<speakingVolume){
                     break;
                }
                Thread.sleep(200);//Your refreshRate
            }
              mic.close();
            //You can also measure the volume across the entire file if you want
            //to be resource intensive.
            if(!speaking){
                 ambientListening();
            }
        Recognizer rec = new Recognizer(Recognizer.Languages.ENGLISH_US);
        GoogleResponse out = rec.getRecognizedDataForWave(filename);
        System.out.println(out.getResponse());
        ambientListening();
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以在我的桌面应用程序中使用谷歌语音识别 API 的相关文章

随机推荐

  • 在 ActionScript3 中加密并在 asp.net c# 中解密

    我需要将数据从闪存发送到服务器 因此我正在寻找一个用于加密文本的闪存 ActionScript 3 0 脚本和一个用于解密文本的 C net 脚本 有人能帮我一下吗 查看 as3corelib 加密包 http code google co
  • 如何使用程序化 Spark 提交功能

    最近 2015 年春季 有一个功能显然旨在允许以编程方式提交 Spark 作业 这是吉拉https issues apache org jira browse SPARK 4924 https issues apache org jira
  • 如何要求抽象方法是协程?

    我如何要求抽象基类实现特定方法作为协程 例如 考虑这个 ABC import abc class Foo abc ABC abc abstractmethod async def func pass 现在 当我子类化并实例化它时 class
  • 如何使用 jQuery 将值记录到 Firebug 控制台?

    我只是想知道是否有一种方法可以使用 jQuery 将一些变量值记录到 Firebug 控制台以进行调试 jQuery 只是一个 JavaScript 库 因此您可以使用console log http getfirebug com logg
  • Spring Webclient:非法参数异常没有足够的变量来扩展“comment_count”

    我正在使用 spring webclient 发出 Facebook graph api 请求 其 url 包含 comment count 但是 得到这个例外 java lang IllegalArgumentException Not
  • 为什么这个简单的汇编程序可以使用 AT&T 语法而不是 Intel 语法?

    这段代码有什么问题 在 x86 64 Linux 上运行 intel syntax text globl start start mov rax 1 mov rdi 1 mov rsi msg mov rdx 14 syscall mov
  • 如何在单击多个按钮时更改按钮颜色

    当页面加载其他两个不活动的按钮时 我有一个按钮需要处于活动状态 单击非活动按钮时 我需要从另一个按钮中删除活动类并将其添加到单击的按钮中 button click function clicked true if clicked this
  • python re.sub 模块中以 key 作为匹配组的字典查找

    python re sub 模块中以 key 作为匹配组的字典查找 解决方案1 不起作用 dict1 dict1 indu sharma dict1 abhi dutta text agan abhi indu Saikat text re
  • CallLog 内容提供商最多返回 500 个结果

    由于某种原因 如果我查询 CallLog 内容提供程序 我最多会得到 500 个结果 另外 我似乎只得到 1 个月前的结果 当我的设备电话应用程序目前显示大约 8 个月时 我用谷歌搜索了它 但我发现的只是 将 CallLog Calls 存
  • 我可以告诉或提示 RubyMine 本地变量或实例变量是什么类型吗?

    我正在尝试利用 RubyMine 快速文档和代码完成 我很高兴地发现它如何很好地集成了 YARD 风格的注释 param Numeric width param Array
  • 使用 AFNetworking 加载离线缓存的 JSON

    我一直在尝试使用 AFNetworking 实现缓存 以便我的缓存 JSON 将离线加载 我以不同的方式尽了最大努力 但根本无法使缓存工作 我不知道我在这里错过了什么 这是我的代码AppDelegate func application a
  • 使用空合并运算符进行隐式转换

    我发现我的程序有一个奇怪的行为 经过进一步分析 我发现我的 C 知识或其他地方可能有问题 我相信这是我的错误 但我无法在任何地方找到答案 public class B public static implicit operator B A
  • Javascript对象根据属性有效求和值

    我在 JS 数组中确实有三个对象 如下所示 2013 03 02T00 00 300 2013 03 01T00 00 200 2013 03 02T00 00 50 我想要类似下面的内容作为上面数组的输出 2013 03 02T00 00
  • Swift:使用 NSOperation 保留循环

    在我的应用程序中 我使用图像加载器类从网络加载图像以用于集合视图 该类跟踪下载操作 并在图像单元格在集合视图中不再可见时取消下载操作 此实现基于 NSOperation 的 raywenderlich 教程 http www raywend
  • 有没有办法在查询中使表名动态化?

    我正在尝试为产品创建类继承设计 有一个包含所有公共字段的基表 然后 对于每种产品类型 都有一个单独的表 其中包含仅适用于该产品类型的字段 因此 为了获取产品的所有数据 我需要JOIN基表以及与相关的任何表product type列在基表中
  • Promise.resolve().then 与 setImmediate 与 nextTick

    NodeJS 0 11 以及 io js 和 Node 0 12 分支都带有原生 Promise 原生承诺have a then method https developer mozilla org en US docs Web JavaS
  • MVC3 提交 Ajax 表单

    我已经阅读了很多关于这个主题的不同帖子 我将继续这样做并尝试各种事情 尽管信息差异很大 但由于我对 MVC 等相对缺乏经验 我觉得我有点绕圈子 情况是这样的 我正在 MVC3 应用程序中显示 Razor 视图 其中包含 jqGrid 中的记
  • 仅在 CopyObject 中拒绝 Amazon S3 访问

    我从 nodejs 脚本上传文件 当我尝试复制对象时 我收到 访问被拒绝 错误 如果我尝试删除该对象或获取它 没有问题并且成功 CopyObject 中有什么特殊的吗 params Bucket buacket name CopySourc
  • 使用 Ajax 更新 Rails 中的元素

    该应用程序允许用户对嵌入视频进行投票 当用户点击上下箭头时 整个页面刷新更新points 几个月来我一直在尝试实现 AJAX 投票 我想要您能提供的最直接的解决方案 即使它不是最有效的 有任何想法吗 My up and down行动来自ap
  • 我可以在我的桌面应用程序中使用谷歌语音识别 API

    我想知道我是否可以在我的桌面应用程序中使用 google 的语音识别 api 我见过一些示例 其中我必须将语音转换为文件并发送到网址 但这将是一个不太麻烦的任务 因为在我的应用程序中 用户必须不断提交他的声音 那么还有其他替代方法可以使用