#!/usr/bin/env python3 """ Single WAV file tester Usage: python test_single_wav.py """ import sys import wave from google.cloud import speech def test_wav_file(wav_file_path): try: print(f"Testing WAV file: {wav_file_path}") # Read WAV file with wave.open(wav_file_path, 'rb') as wav_file: n_channels = wav_file.getnchannels() sample_width = wav_file.getsampwidth() sample_rate = wav_file.getframerate() n_frames = wav_file.getnframes() wav_audio = wav_file.readframes(n_frames) print(f"WAV Info: {n_channels}ch, {sample_width*8}bit, {sample_rate}Hz, {n_frames} frames, {n_frames/sample_rate:.2f}s") # Google STT client credentials_path = "./credentials/google-service-account.json" client = speech.SpeechClient.from_service_account_file(credentials_path) # Config config = speech.RecognitionConfig( encoding=speech.RecognitionConfig.AudioEncoding.LINEAR16, sample_rate_hertz=sample_rate, language_code="tr-TR", audio_channel_count=n_channels, enable_separate_recognition_per_channel=False, ) # Audio audio = speech.RecognitionAudio(content=wav_audio) # Recognize print("Sending to Google API...") response = client.recognize(config=config, audio=audio) print(f"Response: {response}") print(f"Results count: {len(response.results)}") if response.results: for i, result in enumerate(response.results): print(f"Result {i}: {result}") if result.alternatives: print(f" Transcript: '{result.alternatives[0].transcript}'") print(f" Confidence: {result.alternatives[0].confidence}") return True else: print("No results returned") return False except Exception as e: print(f"Error: {e}") import traceback traceback.print_exc() return False if __name__ == "__main__": if len(sys.argv) != 2: print("Usage: python test_single_wav.py ") sys.exit(1) wav_file = sys.argv[1] success = test_wav_file(wav_file) sys.exit(0 if success else 1)