您可能知道,使用 Android API 实现语音到文本非常容易。您所要做的就是调用 API 的意图,它会为您返回文本。我的情况有点不同,我有一个预先录制的 3GPP 声音文件,我从用户那里录制并保存在 SD 卡上。我想知道是否可以像任何其他语音识别一样将其转录成文本。语音转文本 API 是否允许上传您自己的声音文件以进行处理?或者这是不可能的?
3 回答
API 不允许这样做,但请参阅此博客文章及其评论以了解潜在的解决方法。还要确保您的文件包含高质量的音频(至少 16 位和 16 kHz)以获得更好的转录。
也可以看看:
我得到了一个很好的解决方案,可以从声音文件中将语音转换为文本。这是我创建的一个简单 Android 项目的链接,用于展示解决方案的工作原理。此外,我在项目中放置了一些打印屏幕来说明应用程序。
我将尝试简要解释我使用的方法。我在该项目中结合了两个功能:Google Speech API 和 Flac 录音。
Google Speech API 通过 HTTP 连接调用。Mike Pultz提供了有关 API 的更多详细信息:
“(...) 新的 [Google] API 是一个全双工流 API。这意味着它实际上使用了两个 HTTP 连接——一个 POST 请求将内容作为“实时”分块流上传,另一个第二个 GET 请求来访问结果,这对于更长的音频样本或流式音频更有意义。”
但是,此 API 需要接收 FLAC 声音文件才能正常工作。这让我们进入第二部分:Flac 录音
我通过从一个名为 AudioBoo 的开源应用程序中提取和改编一些代码和库,在该项目中实现了 Flac 录音。AudioBoo 使用原生代码来录制和播放 flac 格式。
因此,可以录制 flac 声音,将其发送到 Google Speech API,获取文本并播放刚刚录制的声音。
我创建的项目具有使其工作的基本原则,并且可以针对特定情况进行改进。为了使其在不同的场景中工作,有必要获得一个 Google Speech API 密钥,该密钥是通过成为 Google Chromium-dev 组的一部分获得的。我在那个项目中留下了一把钥匙只是为了表明它正在工作,但我最终会删除它。如果有人需要有关它的更多信息,请告诉我,因为我无法在这篇文章中放置超过 2 个链接。
目前无法将您自己的音频文件发送到 google 进行处理,但您可以使用您的 android 设备中的扬声器和麦克风将您的音频文件用作 google 语音识别的输入。
首先,您必须有一个可能在您的 SD 卡中的音频文件,然后使用以下步骤:
1)以您希望的任何名称创建一个方法
2)在该方法中,首先编写使用谷歌语音识别的代码
3)在该代码之后编写使用扬声器播放音频文件的代码,然后将其作为谷歌语音识别的输入
//code for google voice recognition
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault());
intent.putExtra(RecognizerIntent.EXTRA_PROMPT,
getString(R.string.speech_prompt));
try {
startActivityForResult(intent, REQ_CODE_SPEECH_INPUT);
} catch (ActivityNotFoundException a) {
Toast.makeText(getApplicationContext(),
getString(R.string.speech_not_supported),
Toast.LENGTH_SHORT).show();
//code for playing the audio file which you wish to give as an input
MediaPlayer mp = new MediaPlayer();
try {
mp.setDataSource(file); // here file is the location of the audio file you wish to use an input
mp.prepare();
mp.start();
} catch (Exception e) {
e.printStackTrace();
}
如需参考,请参阅我的博客 https://sureshkumarask.wordpress.com/2017/03/19/how-to-give-our-own-audio-file-as-an-input-to-any-speech-recognizer/
我在我的博客中附上了java文件的链接。