0

This is my code

import speech_recognition as sr import os

def speech_to_text(speech_to_text_name):

#calling the Recognizer() r = sr.Recognizer()

BASE_DIR = os.path.dirname(os.path.abspath(__file__))
# FILE_PATH = os.path.join(BASE_DIR, "noise_removed_lectures\\noise_removed_lectures_{}".format(speech_to_text_name))
FILE_PATH = os.path.join(BASE_DIR, "noise_removed_lectures\\{}".format(speech_to_text_name))
print('file path: ', FILE_PATH)
# DESTINATION_DIR = os.path.dirname(os.path.join(BASE_DIR, "LectureSummarizingApp\\speechToText\\{}.txt".format(speech_to_text_name)))
DESTINATION_DIR = os.path.join(BASE_DIR, "speechToText\\{}.txt".format(speech_to_text_name))
print('destination directory: ', DESTINATION_DIR)

with sr.AudioFile(FILE_PATH) as source:
    audio = r.listen(source)
    # file = open('audioToText01.txt', 'w') #open file
    file = open(DESTINATION_DIR, 'w') #open file
    try:
        text = r.recognize_google(audio) #Convert using google recognizer
        file.write(text)
    except:
        file.write('error')

    file.close()

I need to separate the sentences as well. how can I do that??

1 Answers1

0

You can use split(), which takes a delimiter, to create a list of sentences from your string.

str = 'This is the first sentence. This is the second, and its a bit longer.'
sentences = str.split('. ') # Split the string at every dot followed by a space

print(sentences)

>> ['This is the first sentence', 'This is the second, and its a bit longer.']
dellitsni
  • 417
  • 2
  • 9
  • But when I convert audio into text. using the Google API, I can't use that as there are no (.) s right?? – Linisha Siriwardana Jan 09 '21 at 17:17
  • 1
    @LinishaSiriwardana If there are no sentences in your text, then you won't be able to split it into sentences. Perhaps you should be looking for machine learning libraries for detecting sentences, if there are such a thing - I can't think of any other way to do what you're trying to do. – dellitsni Jan 09 '21 at 18:30