用python的声音做笔记
#python #speechtotext #voice #notes

在此博客文章教程中,我们将学习如何使用我们的声音在Python中做笔记。这意味着我们可以获取音频文件并使用AI语音到文本来转录它。可以想象几十个场景可能会有所帮助:从捕获语音备忘录的内容到向无法参加的人们提供整洁的会议书面回顾。

从这些录音中获取转录是一个非常简单的过程。该项目建立在Deepgram的语音到文本API的基础上,该API提供了从实时流和处理预录的音频源的高质量AI生成的成绩单。我们将在本教程中使用预录的音频文件的项目。

让我们走进分步,用python的声音做笔记。

Python中的学习语音AI项目

这是我们在这个项目中涵盖的内容的清单:

  • 步骤1 - 从Deepgram开始讲话到文本Python SDK
  • 步骤2 - 在Python中获取语音笔记的有用语音到文本功能
  • 步骤3 - 设置您的Python项目
  • 步骤4 - 使用PIP安装Python库和包装
  • 步骤5 - 如何用语音上传python中的音频文件
  • 步骤6 - 使用语音到文本功能来增强Python中的声音
  • 最终步骤 - 运行Python语音笔记项目并导出结果

步骤1-启动Deepgram语音到文本Python SDK

深集有一个Python SDK that we can tap into that’s located on Github。我们还需要使用一个API键we can grab in Console(在Deepgram中类似游戏的枢纽)来尝试使用许多编码语言(包括Python)的不同类型的转录。首次注册时,您将获得150美元的API积分来尝试Deepgram的语音AI功能。

步骤2-在Python中获取语音笔记的有用语音到文本功能

我们的项目在Python中用语音进行笔记,将使用Deepgram语音到文本转录API及其一些更先进的功能来增强我们的语音音符。以下是我们将使用以下功能,以及转录音频:

  • 诊断 - 识别多个人说话,并将扬声器分配给成绩单中的每个单词。

  • 摘要 - 总结成绩单的部分,以便您可以快速扫描。

我们将在几个部分中看到如何轻松实现这些功能在我们的Python项目中。

步骤3-设置您的Python项目

在开始编码之前,我们需要设置一些项目。我是在我们的项目中使用Python3.10,但是任何等于或高于Python 3.7的版本都将起作用。在计算机上的任何位置创建一个文件夹目录,让我们称其为voice-notes-with-python

然后,在诸如Visual Studio之类的代码编辑器中打开相同的目录。

接下来,创建一个虚拟环境。这样可以确保我们的Python库被安装在该项目中而不是系统中。确保我们使用正确的项目目录,并从终端运行这些快速命令以创建Python虚拟环境并激活它:

python3 -m venv venv
source venv/bin/activate

最后,让我们在我们的目录中创建一个名为take_voice_notes.py的python文件。

步骤4-使用pip安装Python库和包装

现在,我们准备使用pip安装Deepgram。确保您的虚拟环境激活并运行以下命令:

pip install deepgram-sdk

这使我们能够使用Deepgram语音到文本Python SDK进行转录,并点击我们之前提到的功能。

从终端类型中正确安装了该深集:

pip freeze

我们应该看到最新版本的Deepgram from PyPI已安装并准备好使用。

步骤5-如何用语音在python中转录音频文件

我们将使用DeepGram的预先记录转录,以便使用语音Python项目进行笔记。这种类型的转录用于在驱动器上本地或在线托管的音频文件。在本教程中,我们将使用本地的音频转录音频,但是此AI语音识别提供商非常简单。让我们看看如何将音频文件抄录为本地下载或在线文件。

用Python转录本地音频文件

from deepgram import Deepgram
import json

DEEPGRAM_API_KEY = YOUR_API_KEY_GOES_HERE
PATH_TO_FILE = 'some/file.wav'

def main():
    # Initializes the Deepgram SDK
    deepgram = Deepgram(DEEPGRAM_API_KEY)

    # Open the audio file
    with open(PATH_TO_FILE, 'rb') as audio:
        # ...or replace mimetype as appropriate
        source = {'buffer': audio, 'mimetype': 'audio/wav'}
        response = deepgram.transcription.sync_prerecorded(source, {'punctuate': True})
        print(json.dumps(response, indent=4))

main()

用Python转录托管的在线音频文件

from deepgram import Deepgram
import json

# The API key we created in step 3
DEEPGRAM_API_KEY = YOUR_API_KEY_GOES_HERE

# Hosted sample file
AUDIO_URL = "{YOUR_URL_TO_HOSTED_ONLINE_AUDIO_GOES_HERE}"

def main():
    # Initializes the Deepgram SDK
    dg_client = Deepgram(YOUR_API_KEY_GOES_HERE)
    source = {'url': AUDIO_URL}
    options = { "punctuate": True, "model": "general", "language": "en-US", "tier": "enhanced" }
    response = dg_client.transcription.sync_prerecorded(source, options)
    print(json.dumps(response, indent=4))

main()

步骤6-使用语音到文本功能来增强Python中语音的记录。

现在,我们对Python代码的外观有了一个了解,让我们看到一个具有diarizesummarization功能的示例。在与上面相同的功能中,我们可以将这些功能传递给Python字典作为键,并将值设置为真,如:

 with open(PATH_TO_FILE, 'rb') as audio:
       source = {'buffer': audio, 'mimetype': 'audio/mp3'}
       response = deepgram.transcription.sync_prerecorded(source,                                                          
                                         {'diarize': True,                                                    
                                         'summarize': True}
                                                           )

最后一步 - 运行Python语音笔记项目并导出结果

我们达到了最后一步!在此步骤中,我们需要运行Python项目,以便我们可以看到我们的JSON响应,将笔录分为多个扬声器和摘要。

来自我们的终端类型:

python3 take_voice_notes.py > notes.txt

这运行我们的项目并输出一个名为notes.txt的文件,该文件现在在我们的目录中。

打开文件,我们看到一个JSON响应,看起来如下,具体取决于转录哪个音频文件:

"alternatives": [
                    {
                        "transcript": "Hello, and thank you for being in this meeting...",
                        "confidence": 0.9916992,
                        "words": [
                            {
                                "word": "hello",
                                "start": 15.259043,
                                "end": 15.338787,
                                "confidence": 0.95751953,
                                "speaker": 0,
                                "speaker_confidence": 0.76544046,
                                "punctuated_word": "Hello,"
                            },
                            {
                                "word": "and",
                                "start": 15.418532,
                                "end": 15.617893,
                                "confidence": 0.99853516,
                                "speaker": 1,
                                "speaker_confidence": 0.76544046,
                                "punctuated_word": "and"
                            },
                            {
                                "word": "thank",
                                "start": 15.617893,
                                "end": 15.777383,
                                "confidence": 0.9975586,
                                "speaker": 1,
                                "speaker_confidence": 0.76544046,
                                "punctuated_word": "thank"
                            },
                            {
                                "word": "you",
                                "start": 15.777383,
                                "end": 15.9368725,
                                "confidence": 0.9975586,
                                "speaker": 0,
                                "speaker_confidence": 0.76544046,
                                "punctuated_word": "you"
                            },
],
     "summaries": [
                            {
                                "summary": "Hello, and thank you for calling premier phone service. Please be aware that this call may be recorded for quality and training purposes. How may I help you today? I'm having some serious problem with my phone. Can you describe in detail for me? What kind of issues you're having with your device? Well, it isn't working.",
                                "start_word": 0,
                                "end_word": 649
                            },
                            {
                                "summary": "My phone won't turn on. I don't know what's wrong. My dad said I should get a new phone, but I didn't listen to him. I also never backed up my photos on the cloud like I know I should.",
                                "start_word": 649,
                                "end_word": 1288
                            },
        }
]

我们收到了成绩单,并在响应结束时分配了笔录中的每个单词和成绩单的摘要。

与语音识别的Python语音笔记项目的结论

我们学会了如何转录音频并与Python和AI语音到文本提供商发声。

使用Deepgram的其他功能(例如redaction)隐藏了敏感信息,例如信用卡号或社会安全号码或search功能,该功能有很多方法来扩展该项目,该功能搜索了术语和短语。有关所有功能的完整列表,请访问this page

如果您对此帖子或Deepgram周围的其他任何反馈,我们很乐意收到您的来信。请在我们的GitHub discussions中告诉我们。