본문 바로가기

Spring Boot

[Google API + Springboot] STT(Speech-to-Text) 기능을 구현

반응형

Spring Boot 응용 프로그램에서 STT(Speech-to-Text) 기능을 구현하려면 Google Cloud Speech-to-Text API를 사용할 수 있습니다. API는 Google Cloud Console에서 얻을 수 있는 API 키를 사용하여 액세스할 수 있습니다.

1. 다음 종속성을 pom.xml 파일에 추가합니다.

<dependency>
  <groupId>com.google.cloud</groupId>
  <artifactId>google-cloud-speech</artifactId>
  <version>1.105.0</version>
</dependency>

 

2. 응용 프로그램에서 API 키를 설정합니다.

@Value("${google.cloud.api.key}")
private String apiKey;

@Bean
public SpeechClient speechClient() throws IOException {
  return SpeechClient.create().setCredentials(
      ServiceAccountCredentials.fromStream(new ByteArrayInputStream(apiKey.getBytes())));
}

 

3. 코드에서 API 사용.

@Autowired
private SpeechClient speechClient;

public String transcribeAudio(byte[] audioBytes) throws Exception {
  // Configure request with local raw PCM audio
  RecognitionConfig config =
      RecognitionConfig.newBuilder()
          .setEncoding(RecognitionConfig.AudioEncoding.LINEAR16)
          .setSampleRateHertz(16000)
          .setLanguageCode("en-US")
          .build();
  RecognitionAudio audio = RecognitionAudio.newBuilder().setContent(ByteString.copyFrom(audioBytes)).build();

  // Use blocking call to get transcript
  RecognizeResponse response = speechClient.recognize(config, audio);
  List<SpeechRecognitionResult> results = response.getResultsList();

  StringBuilder transcript = new StringBuilder();
  for (SpeechRecognitionResult result : results) {
    transcript.append(result.getAlternativesList().get(0).getTranscript());
  }

  return transcript.toString();
}
반응형