@@ -30,13 +30,19 @@ class GoogleResponse(TypedDict):
3030ProfanityFilterLevel = Literal [0 , 1 ]
3131RequestHeaders = Dict [str , str ]
3232
33+ ENDPOINT = "http://www.google.com/speech-api/v2/recognize"
3334
34- class RequestBuilder :
35- endpoint = "http://www.google.com/speech-api/v2/recognize"
3635
36+ class RequestBuilder :
3737 def __init__ (
38- self , * , key : str , language : str , filter_level : ProfanityFilterLevel
38+ self ,
39+ * ,
40+ endpoint : str ,
41+ key : str ,
42+ language : str ,
43+ filter_level : ProfanityFilterLevel ,
3944 ) -> None :
45+ self .endpoint = endpoint
4046 self .key = key
4147 self .language = language
4248 self .filter_level = filter_level
@@ -53,7 +59,7 @@ def build(self, audio_data: AudioData) -> Request:
5359
5460 def build_url (self ) -> str :
5561 """
56- >>> builder = RequestBuilder(key="awesome-key", language="en-US", filter_level=0)
62+ >>> builder = RequestBuilder(endpoint="http://www.google.com/speech-api/v2/recognize", key="awesome-key", language="en-US", filter_level=0)
5763 >>> builder.build_url()
5864 'http://www.google.com/speech-api/v2/recognize?client=chromium&lang=en-US&key=awesome-key&pFilter=0'
5965 """
@@ -69,7 +75,7 @@ def build_url(self) -> str:
6975
7076 def build_headers (self , audio_data : AudioData ) -> RequestHeaders :
7177 """
72- >>> builder = RequestBuilder(key="", language="", filter_level=1)
78+ >>> builder = RequestBuilder(endpoint="", key="", language="", filter_level=1)
7379 >>> audio_data = AudioData(b"", 16_000, 1)
7480 >>> builder.build_headers(audio_data)
7581 {'Content-Type': 'audio/x-flac; rate=16000'}
@@ -99,6 +105,7 @@ def to_convert_rate(sample_rate: int) -> int:
99105
100106def create_request_builder (
101107 * ,
108+ endpoint : str ,
102109 key : str | None = None ,
103110 language : str = "en-US" ,
104111 filter_level : ProfanityFilterLevel = 0 ,
@@ -111,7 +118,10 @@ def create_request_builder(
111118 if key is None :
112119 key = "AIzaSyBOti4mM-6x9WDnZIjIeyEU21OpBXqWBgw"
113120 return RequestBuilder (
114- key = key , language = language , filter_level = filter_level
121+ endpoint = endpoint ,
122+ key = key ,
123+ language = language ,
124+ filter_level = filter_level ,
115125 )
116126
117127
@@ -220,6 +230,8 @@ def recognize_legacy(
220230 pfilter : ProfanityFilterLevel = 0 ,
221231 show_all : bool = False ,
222232 with_confidence : bool = False ,
233+ * ,
234+ endpoint : str = ENDPOINT ,
223235):
224236 """
225237 Performs speech recognition on ``audio_data`` (an ``AudioData`` instance), using the Google Speech Recognition API.
@@ -237,7 +249,7 @@ def recognize_legacy(
237249 Raises a ``speech_recognition.UnknownValueError`` exception if the speech is unintelligible. Raises a ``speech_recognition.RequestError`` exception if the speech recognition operation failed, if the key isn't valid, or if there is no internet connection.
238250 """
239251 request_builder = create_request_builder (
240- key = key , language = language , filter_level = pfilter
252+ endpoint = endpoint , key = key , language = language , filter_level = pfilter
241253 )
242254 request = request_builder .build (audio_data )
243255
0 commit comments