SDKs¶
O CPqD oferece SDKs para simplificar o desenvolvimento de aplicações usando reconhecimento de fala através da API WebSocket. Atualmente são disponibilizados SDKs na forma de bibliotecas em C++ e Java. Dois exemplos de uso desses SDKs são mostrados a seguir.
Para mais informações, entre em contato com o CPqD.
Exemplo em C++¶
std::unique_ptr<RecognitionConfig> config = RecognitionConfig::Builder()
.maxSentences(3)
.confidenceThreshold(50)
.noInputTimeoutEnabled(true)
.noInputTimeoutMilliseconds(5000)
.startInputTimers(true)
.build();
std::unique_ptr<SpeechRecognizer> asr = SpeechRecognizer::Builder()
.serverUrl("wss://speech.cpqd.com.br/asr/ws/v2/recognize/16k")
.credentials("guest", "1234")
.recogConfig(std::move(config))
.build();
std::shared_ptr<AudioSource> audio = std::make_shared<AudioSourceFile>("/opt/audio/yes.wav");
std::unique_ptr<LanguageModelList> lm = LanguageModelList::Builder()
.addFromURI("builtin:grammar/yes_no")
.build();
try {
asr->recognize(audio, std::move(lm));
RecognitionResult result = (asr->waitRecognitionResult())[0];
int i = 0;
for (RecognitionResult::Alternative& alt : result.getAlternatives()) {
std::cout << "Alternativa ["
<< ++i
<< "] (score = "
<< alt.getConfidence()
<< "): "
<< alt.getText()
<< std::endl;
int j = 0;
for (Interpretation& interpretation : alt.getInterpretations()) {
std::cout << "\t Interpretacao ["
<< ++j
<< "]: "
<< interpretation.text_
<< std::endl;
}
}
} catch (RecognitionException e) {
...
}
asr->close();
Exemplo em Java¶
RecognitionConfig config = RecognitionConfig.builder()
.maxSentences(3)
.confidenceThreshold(80)
.noInputTimeoutEnabled(true)
.noInputTimeoutMilis(50)
.startInputTimers(true)
.build();
SpeechRecognizer asr = SpeechRecognizer.builder()
.serverUrl("wss://speech.cpqd.com.br/asr/ws/v2/recognize/16k")
.credentials("guest", "1234")
.recogConfig(config)
.build();
AudioSource audio = new FileAudioSource("/opt/audio/yes.wav");
LanguageModelList lm = LanguageModelList.builder()
.addFromURI("builtin:grammar/yes_no")
.build();
try {
asr.recognize(audio, lm);
RecognitionResult result = asr.waitRecognitionResult().get(0);
int i = 0;
for (RecognitionAlternative alt : result.getAlternatives()) {
System.out.println(String.format("Alternativa [%s] (score = %s): %s",
i++,
alt.getConfidence(),
alt.getText()));
int j = 0;
for (Interpretation interpretation : alt.getInterpretations()) {
System.out.println(String.format("\t Interpretacao [%s]: %s",
j++,
interpretation));
}
}
} catch (RecognitionException e) {
...
} finally {
asr.close();
}