Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用录制的声音片段在android上进行语音识别?_Android_Speech Recognition_Voice_Voice Recognition - Fatal编程技术网

使用录制的声音片段在android上进行语音识别?

使用录制的声音片段在android上进行语音识别?,android,speech-recognition,voice,voice-recognition,Android,Speech Recognition,Voice,Voice Recognition,我在Android上使用过语音识别功能,我喜欢它。这是我的客户最受好评的功能之一。但是,格式有些限制。你必须调用识别器intent,让它将录音发送到google进行转录,然后等待文本返回 我的一些想法需要在我的应用程序中录制音频,然后将剪辑发送到谷歌进行转录 有什么方法可以发送音频剪辑以进行语音到文本的处理吗?不幸的是,目前没有。Android语音识别服务目前支持的唯一接口是RecognizerIntent,它不允许您提供自己的声音数据 如果这是您希望看到的内容,请在提交功能请求。这也与现有的相

我在Android上使用过语音识别功能,我喜欢它。这是我的客户最受好评的功能之一。但是,格式有些限制。你必须调用识别器intent,让它将录音发送到google进行转录,然后等待文本返回

我的一些想法需要在我的应用程序中录制音频,然后将剪辑发送到谷歌进行转录


有什么方法可以发送音频剪辑以进行语音到文本的处理吗?

不幸的是,目前没有。Android语音识别服务目前支持的唯一接口是
RecognizerIntent
,它不允许您提供自己的声音数据


如果这是您希望看到的内容,请在提交功能请求。这也与现有的相关。

不幸的是,目前还没有。Android语音识别服务目前支持的唯一接口是
RecognizerIntent
,它不允许您提供自己的声音数据


如果这是您希望看到的内容,请在提交功能请求。这也与现有的音频剪辑有着千丝万缕的联系。

据我所知,目前还没有办法直接将音频剪辑发送到谷歌进行转录。然而,Froyo(API级别8)引入了该类,它提供了对语音识别服务的直接访问。因此,例如,您可以开始播放音频片段,并让您的活动启动语音识别器在后台进行监听,这将在完成后将结果返回给用户定义的侦听器回调方法

以下示例代码应该在活动中定义,因为SpeechRecognitor的方法必须在主应用程序线程中运行。您还需要将权限添加到AndroidManifest.xml中



    boolean available = SpeechRecognizer.isRecognitionAvailable(this);
    if (available) {
        SpeechRecognizer sr = SpeechRecognizer.createSpeechRecognizer(this);
        sr.setRecognitionListener(new RecognitionListener() {
            @Override
            public void onResults(Bundle results) {
                // process results here
            }
            // define your other overloaded listener methods here
        });
        Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
        // the following appears to be a requirement, but can be a "dummy" value
        intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, "com.dummy");
        // define any other intent extras you want

        // start playback of audio clip here

        // this will start the speech recognizer service in the background
        // without starting a separate activity
        sr.startListening(intent);
    }

您也可以通过扩展来定义自己的语音识别服务,但这超出了这个答案的范围:)

据我所知,仍然无法直接将音频剪辑发送到谷歌进行转录。然而,Froyo(API级别8)引入了该类,它提供了对语音识别服务的直接访问。因此,例如,您可以开始播放音频片段,并让您的活动启动语音识别器在后台进行监听,这将在完成后将结果返回给用户定义的侦听器回调方法

以下示例代码应该在活动中定义,因为SpeechRecognitor的方法必须在主应用程序线程中运行。您还需要将权限添加到AndroidManifest.xml中



    boolean available = SpeechRecognizer.isRecognitionAvailable(this);
    if (available) {
        SpeechRecognizer sr = SpeechRecognizer.createSpeechRecognizer(this);
        sr.setRecognitionListener(new RecognitionListener() {
            @Override
            public void onResults(Bundle results) {
                // process results here
            }
            // define your other overloaded listener methods here
        });
        Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
        // the following appears to be a requirement, but can be a "dummy" value
        intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, "com.dummy");
        // define any other intent extras you want

        // start playback of audio clip here

        // this will start the speech recognizer service in the background
        // without starting a separate activity
        sr.startListening(intent);
    }

您也可以通过扩展来定义自己的语音识别服务,但这超出了此答案的范围:)

我找到了一个解决方案,它可以很好地实现语音识别和音频录制。下面是我创建的一个简单Android项目的示例,展示了解决方案的工作情况。此外,我在项目中放置了一些打印屏幕来演示应用程序

我将试着简单地解释一下我使用的方法。我在这个项目中结合了两个功能:谷歌语音API和Flac录音

Google语音API是通过HTTP连接调用的。提供有关API的更多详细信息:

“(…)新的[Google]API是一个全双工流式API。这意味着,它实际上使用了两个HTTP连接——一个POST请求将内容上传为“实时”分块流,另一个GET请求访问结果,这对于较长的音频样本或流式音频更有意义。”

但是,此API需要接收FLAC声音文件才能正常工作。这让我们进入第二部分:Flac录音

在那个项目中,我通过从一个名为AudioBoo的开源应用程序中提取和改编一些代码和库来实现Flac录制。AudioBoo使用本机代码录制和播放flac格式

因此,可以录制flac声音,将其发送到Google语音API,获取文本,并播放刚刚录制的声音


我创建的项目具有使其工作的基本原则,并且可以针对特定情况进行改进。为了使它在不同的场景中工作,有必要获得一个GoogleSpeechAPI密钥,该密钥是通过成为GoogleChromiumDev组的一部分获得的。我在那个项目中留下了一个键,只是为了显示它正在工作,但我最终会删除它。如果有人需要更多关于它的信息,请告诉我,因为我无法在这篇文章中放置超过2个链接。

我找到了一个解决方案,它可以很好地进行语音识别和录音。下面是我创建的一个简单Android项目的示例,展示了解决方案的工作情况。此外,我在项目中放置了一些打印屏幕来演示应用程序

我将试着简单地解释一下我使用的方法。我在这个项目中结合了两个功能:谷歌语音API和Flac录音

Google语音API是通过HTTP连接调用的。提供有关API的更多详细信息:

“(…)新的[Google]API是一个全双工流式API。这意味着,它实际上使用了两个HTTP连接——一个POST请求将内容上传为“实时”分块流,另一个GET请求访问结果,这对于较长的音频样本或流式音频更有意义。”

但是,此API需要接收FLAC声音文件才能正常工作。这让我们进入第二部分:Flac录音

在那个项目中,我通过从一个名为AudioBoo的开源应用程序中提取和改编一些代码和库来实现Flac录制。AudioBoo使用本机代码录制和播放flac格式

因此,可以录制flac声音,将其发送到Google语音API,获取文本,并播放刚刚录制的声音

我创建的项目具有使其工作的基本原则,并且可以针对特定情况进行改进。在ord中