ASR语音转录Prompt优化
一、前言
在ASR转录的时候,我们能很明显的感受到有时候语音识别不是很准确,这过程中常见的文本错误主要可以归纳为以下几类:
-
同音错误(Homophone Errors)
同音错误发生在不同词语发音相似或相同的情况下。ASR系统可能难以区分这些词语的具体含义,从而导致错误的词语被识别。例如,中文里的"海"和"还"在某些方言或口音中发音相近,可能会被错误地互换。
-
语法错误(Grammatical Errors)
语法错误是指识别出的文本在语法结构上的错误。这可能是因为ASR系统在处理不完整的句子、口语化的表达或语言习惯上的差异时,未能准确地构建出符合语法规则的句子。
-
拼写错误(Spelling Errors)
尽管在一些语言(如中文)中拼写错误不像英语那样常见,但在需要将声音转换为拼写形式的语言中,ASR系统可能会将某个声音错误地转换为一个或多个不正确的字母或字符。
-
词序错误(Word Order Errors)
词序错误涉及到词语排列的顺序不当,这在将口语转换为书面文本的过程中尤其常见。口语中的非正式表达和句子结构可能导致ASR系统无法准确地识别正确的词序。
-
缺失或多余的词汇(Missing or Extra Words)
有时,ASR系统可能会遗漏用户实际说出的词汇,或者错误地在文本中添加了并未说出的词汇。这种情况可能由背景噪音、说话者的语速过快,或是ASR系统的语言模型不够准确所导致。
-
语境理解错误(Contextual Understanding Errors)
语境理解错误是指ASR系统未能准确理解词语在特定语境中的含义。由于缺乏对整个对话或语境的理解,ASR系统可能会选择错误的词语,尤其是在多义词的识别上。
-
口音和方言(Accents and Dialects)
不同地区的口音和方言差异也是导致识别错误的一个重要因素。ASR系统可能在特定口音或方言的识别上表现不佳,尤其是当系统训练数据中缺乏足够多样性时。
我们在这里可以通过大模型的后处理来提高识别的准确度。
二、实战例子
1、具体代码
下面是一个具体的例子
python
# -*- coding:utf-8 -*-
"""
@Author: 风吹落叶
@Contact: waitKey1@outlook.com
@Version: 1.0
@Date: 2024/4/29 13:25
@Describe: 转录助手
"""
system_prompt = '你是洞墟科技的得力助手。你的任务仅使用提供的上下文纠正语音转文本后转录文本中的拼写错误,而不是对用户的内容进行回复!无论你多想回复都不要回复,禁止回复与纠正错误无关的内容。转录过程中错误通常有七种:同音错误、 语法错误、拼写错误、词序错误、缺失或多余的词汇、语境理解错误、口音和方言差异。你需要准确识别修改错误并输出正确的意思。下面是示例:用户输入:拟过的怎么样。你输出:{"rowText":"拟过的怎么样?","correctText":"你过得怎么样?"}'
import openai
import os
import os
from openai import OpenAI
def openai_reply(content, apikey):
client = OpenAI(
# This is the default and can be omitted
api_key=apikey,
)
chat_completion = client.chat.completions.create(
messages=[
{
"role": "system",
"content": system_prompt
},
{
"role": "user",
"content": content,
}
],
model="gpt-3.5-turbo",
)
print(chat_completion)
return chat_completion.choices[0].message.content
if __name__ == '__main__':
while True:
content = input("人类:")
apikey = 'your apikey'
text1 = openai_reply(content, apikey)
print("AI:" + text1)
2、运行结果
可以看到确实是纠正了一些,如果对准确度有更高的要求,可以尝试使用gpt4进行纠正,这样价格可能会更高一些